我想检测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/
由于
答案 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");
});
})