Jquery/JS 绑定“粘贴”输入文本框的事件处理程序

发布于 2024-10-21 16:50:08 字数 463 浏览 6 评论 0原文

好吧,所以我有一个输入框,每次它发生变化时我都需要做一些事情,我在鼠标粘贴方面遇到了困难。 代码

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

这是我现在输入的 getMaxCapacity() 函数返回数字 * 30 的

;这是当
1:我粘贴3,它不会改变(我仍然看到警报)
2:那么当我粘贴5时,它将是90(3 * 30)
3:那么如果我粘贴10,它将是150(5 * 30),依此类推。

我认为它在粘贴实际发生之前执行处理程序。关于我能做什么有什么想法吗? (.更改不起作用,必须在粘贴后立即发生)

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花开柳相依 2024-10-28 16:50:08

您应该处理 inputpropertychange 事件。
演示

You should handle the input and propertychange events.
Demo.

池木 2024-10-28 16:50:08

你说得对。粘贴事件在输入值更改之前触发。尝试将处理程序包装在超时中:

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

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);
眼泪也成诗 2024-10-28 16:50:08

将绑定事件替换为 .live,它应该可以工作,如下所示:

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

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());
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文