javascript – jquery检测文本框值更改不是基于用户输入

假设你的页面上有一个简单的文本框和按钮。点击按钮将更新文本框值:

HTML:

<input type="text" id="myText" val="" />
<input type="button" id="myBtn" value="Change TextBox Value" />

jQuery的:

$("#myBtn").on('click', function() {
   $("#myText").val('adsf');
})

我想为文本框的更改事件添加事件侦听器,如下所示:

$('#myText').on('change', function(){
    alert('Changed!')
});

当您单击按钮时,该警报不会触发,但是当您手动更改文本框值并将其重点放在其上时,该警报将被触发。

我知道你可以添加$(“#myText”)。trigger(‘change’)到按钮的onclick事件,但是我只想通过向文本框添加一个事件监听器来完成这个。

jsfiddle

谢谢

没有支持这样的事件。您唯一可以尝试的是设置间隔或超时以检查值是否更改(使用数据存储临时值):

var $myText = $("#myText");

$myText.data("value", $myText.val());

setInterval(function() {
    var data = $myText.data("value"),
        val = $myText.val();

    if (data !== val) {
        $myText.data("value", val);
        alert("changed");
    }
}, 100);

演示:http://jsfiddle.net/xZcAr/1/

http://stackoverflow.com/questions/16048084/jquery-detect-textbox-value-change-not-based-on-user-input

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – jquery检测文本框值更改不是基于用户输入