Jquery / JS bind "paste" event handler to input textbox
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)
You should handle the input
and propertychange
events.
Demo.
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);
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());
});
精彩评论