文本输入元素没有更改事件吗?当我将更改事件处理程序附加到文本输入时,它不会被解雇。 Keyup被触发,但是keyup不足以检测到更改,因为显然有其他方法可以将文本输入到输入中。jQuery文本框更改事件
回答
没有真正的解决方案 - 即使在上面给出的其他问题的链接。最后我决定使用setTimeout
并调用每秒检查一次的方法!不是一个理想的解决方案,但是我所调用的解决方案和代码很简单,不会随时被调用而影响性能。
function InitPageControls() {
CheckIfChanged();
}
function CheckIfChanged() {
// do logic
setTimeout(function() {
CheckIfChanged();
}, 1000);
}
希望这可以帮助别人的未来,因为它似乎有acheiving此使用的事件处理程序没有万无一失的方法...
更改事件仅在输入失去焦点(并被更改)后才会触发。
如果您真的想知道任何文本何时更改,就像它发生更改一样,您会停止轮询输入。也就是说,将setInterval与一个函数进行比较,该函数将输入的当前值与先前存储的值进行比较(通过比函数范围更高的某个变量)。如果这两个值不匹配,则发生更改。然后,将当前值存储到另一个变量中以进行下一次检查。 – ventaur 2011-05-26 14:21:45
的HTML4规范为<input>
element指定以下脚本事件可用:
的onfocus,的onblur,ONSELECT,平变化, 的onclick,onfocus此,onmousedown事件, onmouseup,的onmouseover,的OnMouseMove, 的onmouseout,onkeypress事件,的onkeydown, 的onkeyup
这里是结合对所有这些事件的一例,表示这是怎么回事http://jsfiddle.net/pxfunc/zJ7Lf/
我想你可以过滤掉哪些事件是真正培训相关您的情况,并检测一下文本值之前和在事件发生后,确定变更
我想过使用变化,焦点,模糊,键盘和mouseup在一起 - 然而mouseup只会在鼠标移动到texbox上时触发,这意味着它不会从上下文菜单中粘贴用户,粘贴可能是粘贴在文本输入范围之外 – jcvandan 2011-05-26 14:33:55
看起来像新的浏览器支持'paste'和'input'事件,我在这里找到它们之后添加了这些事件,[jquery - 如何检测鼠标右键点击并使用JavaScript粘贴](http:// stackoverflow.com/questions/441631/how-to-detect-right-mouse-click-paste-using-javascript)...heres [更新的小提琴](http://jsfiddle.net/pxfunc/zJ7Lf/1/ ) – MikeM 2011-05-26 14:38:26
潜在有用,但如果他们没有非常广泛的支持,真的不能使用它们! – jcvandan 2011-05-26 14:40:59
我发现这工作:
$(document).ready(function(){
$('textarea').bind('input propertychange', function() {
//do your update here
}
})
我广泛使用它来验证与ajax内联。我认为正在讨论的新突变事件将取代某些功能,但该解决方案已经在Firefox,Chrome,IE 10和Safari中测试过,并且已知可以正常工作。 – 2013-07-02 17:45:15
可以实现它:
$(document).ready(function(){
$('#textBox').keyup(function() {alert('changed');});
});
或改变(柄复制与粘贴右键点击):
$(document).ready(function(){
$('#textBox2').change(function() {alert('changed');});
});
这里是Demo
$('#input').on("input",function() {alert('changed');});
为我工作。
- 1. 文本框更改事件
- 2. 文本框文本更改事件
- 3. jQuery:自动完成后文本框文本更改事件?
- 4. 文本框更改事件 - Java脚本
- 5. 更清晰的jquery文本框更改事件
- 6. 取消WPF文本框更改事件
- 7. Datareport文本框更改事件
- 8. 更改事件内的文本框值?
- 9. 赢得文本框Rt更改事件
- 10. 更改文本的JQuery事件
- 11. asp标签文本更改事件jquery
- 12. 如何让文本框的前值jQuery中的更改事件
- 13. jQuery动态生成文本框更改事件
- 14. 使用jquery重置文本框值更改事件
- 15. 文本框更改事件不会立即生效jquery
- 16. JLabel更改文本事件
- 17. Gridview文本更改事件
- 18. JavaFX文本更改事件
- 19. 确定哪个文本框已触发文本更改事件
- 20. jquery复选框更改事件
- 21. jquery可见选择框更改事件
- 22. jquery更改事件
- 23. jquery更改事件
- 24. jQuery文本更改条件
- 25. 更改VB列表框'onclick'事件的文本框
- 26. 如何强制更改jquery事件,而无需用户更改文本框中的文本?
- 27. 在jQuery中未更改组合框的更改事件
- 28. 更改jquery对话框按钮文本
- 29. 更改计算jQuery文本框
- 30. jQuery验证插件 - 更改asp文本框的边框颜色
也许这将有助于:http://stackoverflow.com/questions/1481152/jquery-how-to-detect-a-textboxs-content-has-changed – Bashwork 2011-05-26 14:13:38
你使用$('input')。change( function(){do something}); ? – tenshimsm 2011-05-26 14:20:42
是的,我使用.change和.keyup,但它们不够,请在下面看到我的答案... – jcvandan 2011-05-26 14:29:10