【问题标题】:Javascript event keypress check for Char CodeJavascript 事件按键检查字符代码
【发布时间】:2012-03-21 09:34:39
【问题描述】:

声明:我有一个输入字段。用户在其中只输入数字。最大允许值为 500。 因此,如果用户尝试输入大于 500 的值,他应该无法输入该值。

例如:

  1. 如果用户尝试输入 600 或 700,百位最大值将为 5。
  2. 十位和个位 如果用户输入 5 作为第一位(百位),则最大值将为 0

PS : 用户只输入数字的处理已经使用以下代码 sn-p:

 function isNumberKey(evt){
 var charCode = (evt.which) ? evt.which : event.keyCode;
         if (charCode > 31 && (charCode < 48 || charCode > 57))
              return false;
              return true;
          };

解决问题:

   function isNumberKey(evt){

     var charCode = (evt.which) ? evt.which : event.keyCode;
     if (charCode > 31 && (charCode < 48 || charCode > 57))
       return false;

     if(!(charCode > 31 && (charCode < 48 || charCode > 57)) && charCode != 8){
      if($(evt.currentTarget).value.length == 3){
                   return false;
        }
   if($(evt.currentTarget).value.length == 2){
    if($(evt.currentTarget).value.substring(0,1) > 5){
               return false;
     }else if($(evt.currentTarget).value.substring(0,1) == 5 && $(evt.currentTarget).value.substring(1,2) > 0 ){
    return false;
      }
       }
   }
      return true;
   };

【问题讨论】:

    标签: javascript character-encoding ascii dom-events keypress


    【解决方案1】:

    据我了解,您可以使用 onchange 代替 keypress:

    $('#textbox').change( function(){
       elem = $(this);
       if(parseInt(elem.val()) > 500)
          elem.val('500');
    });
    

    【讨论】:

    • 或者,只需删除元素值的最后一位。
    • 有没有一种方法我不允许用户输入使值超过 500 的密钥
    • 是的。只需使用 str.substring(0, str.length-1) 删除最后一个字符。
    • 谢谢大家,我找到了一个解决方法。因为在 7 小时之前我没有足够的回复点来回答我自己的问题,所以我在问题本身中发布:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多