JavaScript事件按键检查字符代码

问题描述 投票:0回答:1

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

例如:

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

PS:已经使用以下代码段完成了用户仅输入数字的处理:

 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个回答
2
投票

据我了解,您可以使用onchange而不是按键:

$('#textbox').change( function(){
   elem = $(this);
   if(parseInt(elem.val()) > 500)
      elem.val('500');
});
© www.soinside.com 2019 - 2024. All rights reserved.