JQuery 检测由 JS 进行更改的更改输入

Ark*_* G. 2 html jquery detect

我想检测由 JS 进行更改的输入值的更改。

HTML:

<input type="text" name="test_input"><br><br>
<button name="change_input">Change usign JS </button>
Run Code Online (Sandbox Code Playgroud)

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');
    });
})
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/7c54r7x9/

谢谢

Ror*_*san 6

仅当用户输入进行修改时才会引发更改事件。当它以编程方式设置时,您需要自己引发该事件。在 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');
  });
})
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)