业务中常有监视input值变化的需要,今天我在解决这个问题后,在这里对解决方案做个汇总:
通常采用的方法如:
$(input).keyup(function(){ //do sth });
当有输入时则触发事件,后来在阅读他人博客中看到更好的写法,如下:
$(input).on("keyup paste",function(){
//do sth
});
这种写法的好处是,当有键盘输入或者复制发生时都能触发此事件。
但是笔者在开发中又遇到了如下图所示的问题:
当输入一个字符后,input有提示框,而如果从提示框选中后,并没有触发值改变的事件,因此笔者再次改进,代码如下:
$(input).bind("input propertychange", function(){
//do sth
});
此方法涵盖了按键输入、复制输入、选择输入三种情况的事件触发。