文本框脚本 - 过滤输入

过滤输入经常应用的场合是,限定文本框的输入特定数据,或者输入特定格式的数据。

当输入那离不开键盘,当然也不开这三个事件:

  keydown

  keypress

  keyup

先来看看这些事件的顺序:

    textbox.addEventListener("keyup",function(){
        console.log("keyup"); //3
    },false);
    textbox.addEventListener("keydown",function(){
        console.log("keydown");//1
    },false);

    textbox.addEventListener("keypress",function(){
        console.log("keypress");//2
    },false);

既然我们要过滤某些内容,那必须知道我们按下的是什么?

这个可以根据事件对象中的一个属性,在 IE9+ Firefox Safari Chorme Opera中 可以通过charCode获取。

  在IE8以及低版本 以及Opera,不支持该属性,则提供 keyCode,不管哪个属性值,只有 在 keypress 事件时事件对象中才会包含该属性。

下面来看看具体获取 keyCode 或 charCode 的方式

  

    function addHandler(element,type,handler){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent){
            element.attachEvent("on"+ type,handler);
        }else{
            element["on"+type] = handler;
        }
    }
    function getEvent(event){
        return event?event:window.event;
    }

    function getCharCode(event){
        event = getEvent(event);
        if(event.charCode){
            console.log("Chrome"+ event.charCode);
        }else if(event.keyCode) {
            console.log("IE Opera" + event.keyCode);
        }
    }
    var textbox = document.forms[0].elements[0]; //123
    addHandler(textbox,"keypress",function(event){
        console.log(getCharCode(event));
    });

上面主要是兼容了各种浏览器,主要是对IE、Chrome、Safari、Forfix、Opera

  key(按键)- 对应的ISC码值  - 通过 String类的fromCharCode 作为转换成对应的字符串形式

 

实例一:  屏蔽字符

  

    var textbox = document.forms[0].elements[0]; //123
    addHandler(textbox,"keypress",function(event){
        event = getEvent(event);
        var code = getCharCode(event);
        if(!/\d+/.test(String.fromCharCode(code))){
            preventDefault(event);
        }
    });

 

转载于:https://www.cnblogs.com/czhyuwj/p/5721692.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值