开发者

Jquery / JS bind "paste" event handler to input textbox

开发者 https://www.devze.com 2023-02-16 13:42 出处:网络
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

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());
});
0

精彩评论

暂无评论...
验证码 换一张
取 消