Jquery filter text boxes (Preventing user from inserting certain characters)

后端 未结 3 695
余生分开走
余生分开走 2021-01-23 16:30

I am trying to prevent users from typing certain characters in text boxes and this is the code that I have so far :

$().ready(function() {
  $(\".textbox\").keyp         


        
相关标签:
3条回答
  • 2021-01-23 17:14

    You have to include keyVal = 48 and keyVal = 57 or you will be allowing the 0 and 9 respectively. The final code would look like this:

    $().ready(function(){
        $(".textbox").keypress(function(event){
            var keyVal =  (event.charCode || event.keyCode || event.which);
            if((keyVal >= 48 && keyVal <= 57))// Numbers
            {
                return false;
            }
        });
    });
    

    Also looks clearer using the || operator as Devon suggested.

    0 讨论(0)
  • 2021-01-23 17:27

    When I've had to do things like this, I've used the event onkeyup.

    Instead of stripping out the chars automatically (which may lead to user confusion), why not have a regex that checks for valid chars on key up, and then maybe displays a side note to the input, something like 'You may not enter numbers in this field', or something more specific to the actual input field, 'Your city name may not include number(s).'.

    0 讨论(0)
  • 2021-01-23 17:33

    Your keyVal assignment didn't take all browsers into account. This piece of code works in Firefox, IE7, Safari, Chrome and won't let you type numbers in the field, tested with a normal text input element:

    $().ready(function(){
      $(".textbox").keypress(function(event){
        var keyVal = (event.charCode ? event.charCode : ((event.keyCode) ? event.keyCode : event.which));
          if((keyVal > 48 && keyVal < 57))// Numbers
          {
             return false;
          }
        });
    });
    
    0 讨论(0)
提交回复
热议问题