2
回答
javascript键盘监听事件
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
js怎样监听input输入框,让用户在使用拼音输入法的状态下无法输入除数字外的任何字
举报
jiangbo578
发帖于3年前 2回/1K+阅
共有2个答案 最后回答: 3年前
onkeyup="value=value.replace(/[a-zA-Z]/g,'')"
--- 共有 2 条评论 ---
Canrz回复 @jiangbo578 :哦, 后面的replace换为replace(/\D/g,'')。你监控下input的onkeydown事件,做个判断enter键的keyCode,如果此时输入的值不为数字就屏蔽掉。 3年前 回复
jiangbo578firefox下测试通过。chrome下测试未通过,使用搜狗输入法输入拼音,然后按回车,拼音字符就键入到了input输入框且不会被清除 3年前 回复

简单点就是这样的:

<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);
    });






--- 共有 2 条评论 ---
yunfound回复 @Canrz : 谢谢指正。已修正。 3年前 回复
Canrz下面的正则写错了,应该是/[\D]/g 3年前 回复
顶部