jquery 更改在动态值更改时不起作用

标签 jquery events

在 jQuery 中,如果文本框的值因其他事件而动态更改,如何跟踪 onchange 事件。我尝试了这个,但它不起作用:

$("#txtbox").change(function(){
   alert("change");
});

最佳答案

keyup 并未涵盖所有自然情况:(

changekeyup 不起作用的两种情况:

  • 浏览器表单自动完成机制
  • 通过鼠标从系统剪贴板执行粘贴。

示例:表单有一个文本框,用于将电子邮件地址放入其中,并且附加了 onchange、keyup 事件。

当用户开始输入电子邮件地址时,例如Chrome 或 Firefox 自动完成框弹出,用户单击其中一个选项,该框会填充值,焦点保持在文本框中(因此不会触发更改事件)并且没有按下任何键(没有键盘输入)事件)。我尝试将单击附加到列表,但这会在我的浏览器中导致奇怪的行为。

与粘贴类似 - 如果使用鼠标进行粘贴(通过鼠标右键单击可用的上下文菜单)),则不会触发 keyup 或更改事件。

任何人对此都有完整的解决方案,即如何处理输入值的实际变化?

关于jquery 更改在动态值更改时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035633/

相关文章:

php - 如何使用ajax传递字符串数组?

javascript - JQuery 全背景

javascript - execCommand justifycenter

android - 如何在平板电脑中打开数字键盘以输入类型文本

Javascript - 如何访问事件函数中的对象属性?

events - 我们应该将事件存储在数据库中吗? (事件驱动设计)

events - Esper 对战 Coral8。 . .事件流处理

javascript - 如何通过 jQuery 删除对象属性并从数组中获取特定值

javascript - 是什么决定了一个事件是否传递给了我在 javascript 中的函数?

c# - 当类中发生变化时触发事件