当值被另一个事件

时间:2015-06-17 12:42:49

标签: jquery

我想知道当另一个事件修改了值时,如何检测输入文本值的变化。



$('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;
&#13;
&#13;

2 个答案:

答案 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事件移动到导致值更改的方法中,在这种情况下单击加号。