Prevent user from typing in input at max value

前端 未结 7 1932
遥遥无期
遥遥无期 2020-12-30 04:41

I\'d like the user to be blocked from typing more if the value is over 100. So far I have the following from reading different posts:

$(\'.equipCatValidation         


        
7条回答
  •  北海茫月
    2020-12-30 05:27

    
    var maxValue = 100;
    

    jquery

    $('.equipCatValidation').on('keypress', function(e){
      /* preventing set value when it doesn't pass conditions*/
     e.preventDefault(); 
     var input = $(this);
     var value = Number(input.val());
     var key = Number(e.key);
     if (Number.isInteger(key)) {
         value = Number("" + value + key);
         if (value > maxValue) {
           return false;
         }
         /* if value < maxValue => set new input value 
         in this way we don't allow input multi 0 */
         $element.val(value);
     }
    });
    

    vanilla js

    document.querySelector(".equipCatValidation")
     .addEventListener("keypress", function(e) {
      e.preventDefault();
      var input = e.target;
      var value = Number(input.value);
      var key = Number(e.key);
      if (Number.isInteger(key)) {
        value = Number("" + value + key);
        if (value > maxValue) {
          return false;
        }
        input.value = value;
      }
     });
    

    example

    addition to the this answer

提交回复
热议问题