How to allow only numeric (0-9) in HTML inputbox using jQuery?

前端 未结 30 2251
一生所求
一生所求 2020-11-21 05:38

I am creating a web page where I have an input text field in which I want to allow only numeric characters like (0,1,2,3,4,5...9) 0-9.

How can I do this using jQuery

30条回答
  •  孤城傲影
    2020-11-21 06:06

    You can use this JavaScript function:

    function maskInput(e) {
        //check if we have "e" or "window.event" and use them as "event"
            //Firefox doesn't have window.event 
        var event = e || window.event 
    
        var key_code = event.keyCode;
        var oElement = e ? e.target : window.event.srcElement;
        if (!event.shiftKey && !event.ctrlKey && !event.altKey) {
            if ((key_code > 47 && key_code < 58) ||
                (key_code > 95 && key_code < 106)) {
    
                if (key_code > 95)
                     key_code -= (95-47);
                oElement.value = oElement.value;
            } else if(key_code == 8) {
                oElement.value = oElement.value;
            } else if(key_code != 9) {
                event.returnValue = false;
            }
        }
    }
    

    And you can bind it to your textbox like this:

    $(document).ready(function() {
        $('#myTextbox').keydown(maskInput);
    });
    

    I use the above in production, and it works perfectly, and it is cross-browser. Furthermore, it does not depend on jQuery, so you can bind it to your textbox with inline JavaScript:

    
    

提交回复
热议问题