在做文本框的最大位数输入时,maxLengh设置了10,那么在输入9位后,再打中文,日文字的时候,比如,名【なまえ】,其实输入的是一个汉字,但是在输入法完成之前,文本框认为是3个字(なまえ),这样就导致误会了,用户最后一个字就打不进去,只能复制了。。。
代码实现如下:亲测有效
var doing=false;
document.getElementById('testInput').addEventListener('compositionstart',function(e){
doing=true;
},false);
document.getElementById('testInput').addEventListener('input',function(e){
if(!doing){
doSomething(this);
}
},false);
document.getElementById('testInput').addEventListener('compositionend',function(e){
doing=false;
doSomething(this);
},false);
//裁剪文字,限制最大位数在10位
function doSomething(obj){
if(obj.value.length>10){
obj.value=obj.value.slice(0,10);
}
}