我想知道当另一个事件修改了值时,如何检测输入文本值的变化。
$('input').on('change', function() {
//I expected this below to be shown when pressing '+'
alert("You changed the value of the input");
})
$('span').on('click', function() {
$('input').val('1');
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="0">
<span>+</span>
&#13;
答案 0 :(得分:1)
来自JQuery onChange documentation(相当于开启(&#39;更改&#39;,...)):
注意:使用JavaScript更改输入元素的值 例如,.val()不会触发事件。
但是,您可以在更新字段后自行触发更改事件:
$('span').on('click', function() {
$('input').val('1').change();
})
答案 1 :(得分:0)
看起来很脏,但你可以设置一个间隔来检查值。
var inputValue = $('input').val();
setInterval(function () {
if($('input').val() != inputValue) {
alert("Changed");
}
},100);
您唯一的另一个选择是将alert
事件移动到导致值更改的方法中,在这种情况下单击加号。