Chrome中的文本框未触发onChange事件

问题描述

| 我有以下代码来绑定一些在用户更新文本框的值时将触发的验证逻辑。我希望当任何文本框失去焦点时,都将执行“ 0”代码
function RegisterHoursValidationHandlers() {
    $(\'.topic-frame-body input[type=text]\').live(\'change\',function () {
        //Do some stuff here
    });
}
这完全符合我在IE,Firefox和Safari中的预期。但是,该事件从未在Chrome中触发,我也不知道为什么。 更新:通过将
\'change\'
更改为
\'blur\'
,我能够获得所需的效果。虽然这仍然不能解释为什么它不
\'change\'
。     

解决方法

        没有关于铬的古怪之处。 (所有浏览器都支持change事件) 带有实时显示的示例针对动态内容进行了演示。 在这里测试: 这里有一条信息或一个假设使其无法解决。 更新:如果将其更改为模糊时它可以工作,则可能是您覆盖了先前的事件或功能。通过将其更改为模糊,不再覆盖它,因为它是一个不同的事件。 这也可以解释为什么您没有看到任何错误。 (请记住,我相信jQuery将链接绑定到相同元素的事件,但是live()有点特殊情况-但事实可能指向它是函数,而不是事件绑定)     ,        尝试使用.delegate()代替http://api.jquery.com/delegate/ 我已经尝试过使用FF和Chrome进行编码-http://jsfiddle.net/B3aRy/-两者都可以使用。因此,也许这是您代码中其他地方的问题?     ,        您正在使用哪个版本的Jquery? 我自己看不到此问题,但是.live在jquery 1.4+之前不支持\“ change \”事件     ,        尝试:
function RegisterHoursValidationHandlers() {
    $(\".topic-frame-body input[type=\'text\']\").live(\'change\',function () {
        //Do some stuff here
    });
}
用\'text \'周围的引号引起来。值得一试。 或尝试:
$(\".topic-frame-body input:text\").live();
关键是,我认为问题在于您如何定位输入字段的细节,而不是方法。