input输入框如何处理中英文输入

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;
//         })
//     }
// })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值