众所周知,如果想到实时监听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');
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐