Chrome 11+(可能还有IE)在设置值后未触发OnChange
Chrome 11+ (and possibly IE) not triggering OnChange after value set
前一段时间,我为jQuery编写了一个输入掩码扩展,它可以自动从输入elemnt中筛选出任何非十进制/整数值,今天我刚刚发现,如果keyup事件更改了输入的值,它就不再调用onchange事件:
示例:http://jsfiddle.net/At8Ht/37/
如果你在Firefox中查看它,当输入模糊/失去焦点时,它会在更改后在输入下方显示"Halp!",但在Chrome中则不会。
有人有什么建议吗?实际上,我所要做的就是在用户键入大数字时自动插入逗号,例如,在用户放开"2"键后,键入"1552"会产生"1552"。这在Chrome 11/12之前一直运行良好:(
您可以使用blur
和更多的详细信息:
$("#item")
.focus(function() {
this.previousValue = this.value;
})
.keyup(function() {
this.value = new Date().getTime(); // or whatever magic code goes here
})
.blur(function() {
if (this.previousValue !== this.value) {
this.previousValue = this.value;
$('#console').append('halp');
}
});
jsfiddle上的演示
将change
更改为blur
$("#item").blur(function() {
$('#console').append('halp');
});
更新:
$("#item").blur(function() {
$('#console').append('halp');
$(this).trigger('change'); //trigger change
});
$("#item").focus(function() { this.oldValue = this.value; })
$("#item").keyup(function() {
$(this).get(0).value = 'NOPE!';
}).blur(function() {
if(this.value != this.oldValue){
$('#console').append('halp');
$(this).trigger('change'); //trigger change
}
});
(旧版本)也许试试
.bind('keyup', function() {
$('#console').append('halp');
});
相反?
(顺便说一句,在我的firefox版本中,当你离开文本框时,它只显示"halp!",而不是打字)
这是这个问题的一个非常简单的例子。。。这是固定在铬14…但直到13有一个问题。。。
请参阅示例。。。即使在IE中也有效,但在chrome.ver<14
http://jsfiddle.net/nWVeX/7/
最简单的解决方案是使用模糊而不是更改。。。
相关文章:
- 如何获取 onchange 以设置 onclick=window.open(url)
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页
- 将服务中的函数绑定到$scope(错误:无法设置undefined的属性'onChange')
- 如何在javascript中父下拉列表的onchange事件上设置列表框的多个选定值
- 将焦点设置为文本框的onChange事件
- Javascript:通过编程设置一个值来激发onChange
- 在Mobile Safari中选择onchange后,将焦点设置为输入字段
- 如何根据索引中控件的onchange事件设置mvc 5视图中隐藏字段的值
- 单选按钮onchange在通过javascript设置时未触发
- 在javascript中另一个Telerik日期picker的onChange事件上设置Telerik日期picker的
- 在onchange事件的MS CRM日期时间字段中设置特定的日期和年份
- 我可以在React中设置一个输入字段为只读,同时保持我的onChange函数吗?
- 如何在html中使用onchange事件设置下拉值中的链接
- onchange函数在通过jquery设置值时被触发
- ReactJS中使用DangerouslySetInnerHTML设置的html中元素的OnChange事件
- Chrome 11+(可能还有IE)在设置值后未触发OnChange
- MSCRM 4如何使用“;已设置查找值“;以触发OnLoad/OnChange的操作
- CRM 2011 onChange 事件处理程序在 JavaScript 设置字段时未触发
- 在可能的onchange事件处理中设置onclick事件监视器
- Jscolor库为新输入设置onchange函数