JQuery Detect更改JS所做更改的输入

时间:2017-10-26 10:03:03

标签: jquery html detect

我想检测JS所做的更改的输入值的变化。

HTML:

<input type="text" name="test_input"><br><br>
<button name="change_input">Change usign JS </button>

JS:

$(function() {
    $('body').on('change','input[name="test_input"]',function() {
        alert('Changed');
    });
    $('button[name="change_input"]').on('click',function() {
        $('input[name="test_input"]').val('New value');
    });
})

https://jsfiddle.net/7c54r7x9/

由于

2 个答案:

答案 0 :(得分:3)

只有在用户输入进行修改时才会引发更改事件。当它以编程方式设置时,您需要自己提升事件。在jQuery中,您可以使用trigger()来完成此操作,如下所示:

$(function() {
  $('body').on('change', 'input[name="test_input"]', function() {
    console.log('Changed');
  });

  $('button[name="change_input"]').on('click', function() {
    $('input[name="test_input"]').val('New value').trigger('change');
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="test_input"><br><br>
<button name="change_input">Change usign JS </button>

答案 1 :(得分:0)

更改您的代码,如下所示。希望这会对你有所帮助

$(function() {
    $('input[name="test_input"]').change(function() {
        alert('Changed');
    });
    $('button[name="change_input"]').on('click',function() {
        $('input[name="test_input"]').val('New value');
    $('input[name="test_input"]').trigger("change");
    });
})