Jquery / JS bind “paste” event handler to input textbox

我怕爱的太早我们不能终老 提交于 2019-11-27 01:23:25

问题


Allright, SO i have an input box and I need to do things everytime it changes, I am having trouble doing it for mouse paste. Here is the code I have

$("#attack-navy"+unit.ID+"-number").bind('paste', function(){
            alert("paste detected");
            $("#attack-max-capacity").text(getMaxCapacity());
});

the getMaxCapacity() function return number entered * 30 for now;

Here is the scenario when
1: I paste 3, it will not change (i still see the alert)
2: Then when i paste 5, it will be 90(3 * 30)
3: Then if i paste 10 it will be 150(5 * 30), and so on.

I think its doing the handler before the paste actually occurs. Any ideas on what I can do? (.change will not work, it must happen as soon as u paste)


回答1:


You should handle the input and propertychange events.
Demo.




回答2:


You're right. The paste event is firing before the value of the input changes. Try wrapping your handler in a timeout:

setTimeout(function() { $("#attack-max-capacity").text(getMaxCapacity()); }, 0);



回答3:


Replace the bind event with .live and it should work, like this:

$("#attack-navy"+unit.ID+"-number").live('paste', function(){
            alert("paste detected");
            $("#attack-max-capacity").text(getMaxCapacity());
});


来源:https://stackoverflow.com/questions/5278808/jquery-js-bind-paste-event-handler-to-input-textbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!