如何检测文本输入何时随ie8变化

时间:2012-08-03 08:14:16

标签: javascript jquery

我想检测文本输入何时发生变化。 我试过这些,它们在firefox中工作但不在8中。

$('#taskSearch').bind('input', function() {
     alert($(this).val());
});
$('#taskSearch').live('input', function() {
    alert($(this).val());
});
$('#taskSearch').change(function() {
    alert($(this).val());
});

7 个答案:

答案 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答案的变体)