立即检测输入[type =" text"]的变化

时间:2013-07-06 20:17:48

标签: javascript jquery onchange

inputinpt类的值发生变化时,我必须检测到更改。我的解决方案:

我有这个输入:

<input type="text" class="inpt" />

我有这张支票:

$('input.inpt').on("input change", function() {
    doStuff();
})

当我在输入中输入内容时,doStuff()会立即执行。当我需要在javascript中更改输入值时,我会这样做:

    $('input.inpt').val(value);
    $('input.inpt').change();

这是一个很好的方法(因为使用这样的改变功能似乎有点脏)?它适用于所有浏览器吗?感谢。

3 个答案:

答案 0 :(得分:4)

调用.change()只是.trigger('change')的快捷方式,即您正在触发更改事件。这似乎是一件完全可以接受的事情。

答案 1 :(得分:1)

如另一个答案所述,对程序化更改进行调整似乎不应该是任何形式的黑客攻击,事实上可能是最好的也是唯一的方法。

var oInpt = $('input.inpt')
oInpt.on("change", function(oEvent) { }); 

function changeValue(sStr)
{
    oInpt.val(sStr);
    oInpt.trigger("change"); 
}

答案 2 :(得分:0)

我认为这样做并没有错,但我更喜欢编写一个函数来处理这两个相关的任务,如:

function setInputValue(inputElement, value)
{
    $(inputElement).val(value);
    doStuff();
}