如何检测输入jQuery的值变化?

时间:2017-12-05 20:04:42

标签: javascript jquery input

我目前正在使用此函数来检测jQuery中对输入框所做的任何更改。

$(document).on("input change paste keyup", "input, textarea, select", function(e) {
    //do something
});

问题在于,当您通过此$("input").val(currentColorChosen);之类的代码更改输入值时,该函数不会运行。

如何解决这个问题,以便函数可以检测对输入所做的所有更改,包括通过jQuery进行的值更改。

3 个答案:

答案 0 :(得分:2)

$("input").change(function(){console.log("there was a change")})我认为您也可以将值传递给它,这是.on( "change", handler )

的快捷方式

更多信息:https://api.jquery.com/change/

答案 1 :(得分:1)

我刚刚发布了回复here

你可以尝试使用像这样的间隔或超时

var searchValue = $('#myTextbox').val();

function checkSearchChanged() {
    var currentValue = $('#myTextbox').val();
    if ((currentValue) && currentValue != searchValue && currentValue != '') {
        searchValue = $('#myTextbox').val();
       console.log(searchValue)
    }
    setTimeout(checkSearchChanged, 0.1);
}

$(function () {
    setTimeout(checkSearchChanged, 0.1);
});

checkout working plunker here

答案 2 :(得分:0)

在代码后再添加一行:

$("input").val(currentColorChosen);
$("input").bind("change");