input可以监听keydown,keyup,input,change等事件
keydown: 键盘按下
keyupp: 键盘回弹
input: 输入
change: 失去焦点触发
如果你要通过监听input的value值改变然后发送ajax请求来获取数据,input可以处理,每输入一个字符就触发一次,失去焦点之后也可以触发change发送ajax。
但是这是面对英文输入,当遇到中文输入的时候,按下第一个拼音,但没按下空格输入到input的时候,就会触发input事件,但实际上input的value是空,或者说连续输入中文的时候,空格之后第一下输入拼音,会触发input事件,但是实际上内容没有改变,这样发送ajax请求是没有意义的。
这时候就要用到两个事件,compositionstart和compositionend
compositionstart,监听输入开始
compositionend,监听输入结束
这对中文输入来说十分有用
但输入第一个拼音但没有按下空格的时候,会触发compositionstart,按下空格后触发compositionend,
这样子就可以通过监听这两个事件来监听input的value改变来发送ajax
// $.extend({
// handleInput: function(className){
// $(`${className}`).on('input', function(){
// let _this = this;
// setTimeout(function(){
// if(flag){
// console.log($(_this).val())
// }
// })
// })
// $(`${className}`).on("compositionstart", function(){
// flag = false;
// })
// $(`${className}`).on("compositionend", function(){
// flag = true;
// })
// }
// })