繁体   English   中英

输入类型编号只允许 2 个数字

[英]Allow only 2 numbers on input type number

如何在输入类型编号上设置 0 到 99 之间的范围? 我正在使用 HTML5 属性( min="0" max="99" )但它不起作用,据我所知,某些浏览器不支持这种属性。

所以我正在使用这个阻止非数字字符的脚本,但我想将数字限制为最多 99 个(只有 2 个数字)。 我怎样才能做到这一点?

另外我想允许用户使用键盘输入数字。

$(".js-number").numeric();

js小提琴

<input class="test-input" type="number" maxlength="12" />
<script>
$('.test-input').unbind('keyup change input paste').bind('keyup change input paste',function(e){
    var $this = $(this);
    var val = $this.val();
    var valLength = val.length;
    var maxCount = $this.attr('maxlength');
    if(valLength>maxCount){
        $this.val($this.val().substring(0,maxCount));
    }
}); 
</script>

如果您删除 $(".js-number").numeric(); ,则您的示例有效。
但是您可以编辑输入。
maxlength 属性适用于输入类型文本,所以我想 javascript 验证是不可避免的。

 <input type="number" class="js-number" min="0" max="99" value="0">   
 <script>
    $(".js-number").bind('keydown', function(e){
       var targetValue = $(this).val();
       if (e.which ===8 || e.which === 13 || e.which === 37 || e.which === 39 || e.which === 46) { return; }

       if (e.which > 47 &&  e.which < 58  && targetValue.length < 2) {
          var c = String.fromCharCode(e.which);
          var val = parseInt(c);
          var textVal = parseInt(targetValue || "0");
          var result = textVal + val;

          if (result < 0 || result > 99) {
             e.preventDefault();
          }

          if (targetValue === "0") {
            $(this).val(val);
            e.preventDefault();
          }
       }
       else {
           e.preventDefault();
       }
    });
 </script>

你可以这样设置:

<input type="text" class="js-number" maxlength="2">

 function format(input){ if(input.value < 0) input.value=Math.abs(input.value); if(input.value.length > 2) input.value = input.value.slice(0, 2); $(input).blur(function() { // if(input.value.length == 1) input.value=0+input.value; // if(input.value.length == 0) input.value='01'; //* if you want to allow insert only 2 digits *// }); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" name="number" step="1" oninput="format(this)">

它对我有用......也希望对你有用:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM