您的位置:首页 > Web前端 > JavaScript

开发日志:js当文本框输入非中文字符时,提示只能输入中文并将非中文字符清空【兼容IE、FF,适用于当文本框内容改变就立刻触发事件的其他功能性需求】

2013-10-12 16:32 901 查看
项目需要实现一个功能,要求

1文本框只能输入中文

2输入非中文提示,并清空非中文字符

在实现过程中遇到了不少问题

首先,实现了将一个字符串中所有非中文字符清空的功能

obj.value=obj.value.replace(/[^\u4E00-\u9FA5]/g,'');//只能输入中文,非中文字符替换为空


刚开始的时候想使用onchange事件,但发现只有当切换焦点的时候才触发事件,即我输入完【中文45ds】,还要移去鼠标的焦点才能触发事件,不符合需求

接着使用onpropertychange事件,虽然可以实现内容改变后就触发事件,但却与FF不兼容

后来改用了onKey事件,然后加一些逻辑判断实现了该功能

JavaScript代码:

<script  type="text/javascript">

function inputChinese(obj){
var oldLeng=obj.value.length;//获取原文本内容的长度
obj.value=obj.value.replace(/[^\u4E00-\u9FA5]/g,'');//只能输入中文,非中文字符替换为空
var newLeng=obj.value.length;//获取修改后的文本的长度
if(oldLeng!=newLeng){//如果前后文本的长度不一样,说明输入了非中文字符
alert("只能输入中文");
}
}
</script>


HTML代码:

<input  type="text" onkeyup="inputChinese(this)" onafterpaste="inputChinese(this)" />[只能输入中文,如果输入非中文,则将非中文字符除去,并提示]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: