首先问题是这样子的,input框做了正则限制只能输入数字与英文,正则 /[^\a-\z\A-\Z0-9]/g
接下来,在iphone 手机上面,输入一个英文字母,输入框里面是两个字母,或者是字母的组合(连续输入的话)况且只有输入中文的字母会有这个问题。
解决的方法是
//实时录入时通过正则剔除特殊字符(只能输入中文数字字母空格),此方式可解决iOS原生键盘中文录入异常
var flag = false;
$('#account').on('compositionstart',function(){
flag = true;
})
$('#account').on('compositionend',function(){
flag = false;
if (!flag) {
$('#account').val($('#account').val().replace(/[^\a-\z\A-\Z0-9]/g,''))
}
})
$('#account').on('input',function(){
if (!flag) {
$('#account').val($('#account').val().replace(/[^\a-\z\A-\Z0-9]/g,''))
}
})
compositionstart : 例当用户使用拼音输入法开始输入汉字时,这个事件就会被触发。
compositionend : 当文本段落的组成完成或取消时, compositionend 事件将被触发 (具有特殊字符的触发, 需要一系列键和其他输入, 如语音识别或移动中的字词建议)。