我想检测文本输入何时发生变化。 我试过这些,它们在firefox中工作但不在8中。
$('#taskSearch').bind('input', function() {
alert($(this).val());
});
$('#taskSearch').live('input', function() {
alert($(this).val());
});
$('#taskSearch').change(function() {
alert($(this).val());
});
答案 0 :(得分:11)
您可以将onpropertychange
用于IE6 +:
$("#taskSearch").on("propertychange", function(){
alert($(this).val());
});
答案 1 :(得分:2)
最后一个(也是最后一个)是正确的,但你错过了一个右括号:
$('#taskSearch').change(function() {
alert($(this).val());
});
不推荐使用 .live()
(且语法不正确),.bind()
的语法也不正确;该活动的名称为'change'
,而非'input'
。请参阅.change()
的文档。
答案 2 :(得分:2)
以下解决方案适用于IE8和现代浏览器中的按键,滚动或类型中的箭头按钮进行更改=" num"输入字段:
$('#element').on('keyup change', function() {
// do something
});
答案 3 :(得分:1)
https://github.com/spicyj/jquery-splendid-textchange是一个插件,用于修复IE8和IE9中模拟“输入”的怪癖。
作者描述了他如何在他的博客文章(http://benalpert.com/2013/06/18/a-near-perfect-oninput-shim-for-ie-8-and-9.html)中实现这一解决方案,如果您想了解详细信息,这篇文章确实很复杂,请阅读。
答案 4 :(得分:0)
$('#taskSearch').change(function() {
alert($(this).val()); // not the extra brace I've added
});
应该工作。附: please stop使用.live()
。
答案 5 :(得分:0)
这将检测何时在IE8中按下键
$(" #input")。on(' keyup',function(event){alert(' keypress');});
答案 6 :(得分:0)
在输入值更改时立即触发:
$('#example')on('keyup input', function(e){
alert(e.type); // Displays 'keyup' in IE8, 'input' in browsers
});
(这是Mark答案的变体)