众所周知,如果想到实时监听input框值的改变可以通过监听input
事件完成,例如:
let $input = $("#input");
$input.on("input", function(e){
console.log(this.value);
});
但是要实现input
的监听只能通过手动输入数据才能触发,如果是通过js去修改value,则不会触发。例如:
//1.获取dom节点,并监听input事件
let $input = $("#input");
$input.on("input", function(e){
console.log(this.value);
});
//2.通过js修改value值,观察是否触发`input`事件,结果是无法触发的
$input.val("abc");
那我们如何才能让js修改value值之后触发input
事件呢? 答案就是在修改value之后,手动的去触发一下dom的input
事件,例如:
//1.获取dom节点,并监听input事件
let $input = $("#input");
$input.on("input", function(e){
console.log(this.value);
});
//2.通过js修改value值
$input.val("abc");
//3.手动触发`input`事件,观察是否触发`input`事件,结果是触发成功
$input.trigger('input');