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

项目需要实现一个功能,要求

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" οnkeyup="inputChinese(this)" onafterpaste="inputChinese(this)" />[只能输入中文,如果输入非中文,则将非中文字符除去,并提示]






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值