javascript键盘监听事件

jiangbo578 发布于 2015/03/18 09:55
阅读 1K+
收藏 0
js怎样监听input输入框,让用户在使用拼音输入法的状态下无法输入除数字外的任何字
加载中
0
Canrz
Canrz
onkeyup="value=value.replace(/[a-zA-Z]/g,'')"
Canrz
Canrz
回复 @jiangbo578 :哦, 后面的replace换为replace(/\D/g,'')。你监控下input的onkeydown事件,做个判断enter键的keyCode,如果此时输入的值不为数字就屏蔽掉。
j
jiangbo578
firefox下测试通过。chrome下测试未通过,使用搜狗输入法输入拼音,然后按回车,拼音字符就键入到了input输入框且不会被清除
0
yunfound
yunfound

简单点就是这样的:

<input onkeyup="value=value.replace(/[\D]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/\D/g,''))" onkeydown="if(event.keyCode==13)event.keyCode=9">



用html与js分离写法就是这样的:
input.addEventListener('keyup',function(event){
        this.value = this.value.replace(/[\D]/g,'');
    });

   input.addEventListener('beforepaste',function(event){
        window.clipboardData && window.clipboardData.setData('text',window.clipboardData.getData('text').replace(/\D/g,''));
    });
    
    input.addEventListener('keydown',function(event){
        event.keyCode==13 && (event.keyCode=9);
    });






yunfound
yunfound
回复 @Canrz : 谢谢指正。已修正。
Canrz
Canrz
下面的正则写错了,应该是/[\D]/g
返回顶部
顶部