代码之家  ›  专栏  ›  技术社区  ›  Mo.

HTML5输入type=number应只允许无符号整数

  •  2
  • Mo.  · 技术社区  · 8 年前

    如何防止其他与数字相关的字符

    例如 - e .

    演示: http://codepen.io/anon/pen/jrEGrK

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <form action="#" class="container">
      <br />
      <br />
      <br />
      <input class="form-control" onkeyup="value=isNaN(parseFloat(value))?1000:value" type="number" value="0">
    </form>
    3 回复  |  直到 8 年前
        1
  •  6
  •   RegularlyScheduledProgramming    8 年前

    如果您可以使用HTML5,为什么不使用pattern属性并定义一个仅限数字的正则表达式?

    <input pattern="[1-9][0-9]*" ...>
    
        2
  •  3
  •   Vladu Ionut    8 年前

    function validate(e) {
      var ev = e || window.event;
      var key = ev.keyCode || ev.which;
      key = String.fromCharCode( key );
      var regex = /[0-9]/;
      if( !regex.test(key) ) {
        ev.returnValue = false;
        if(ev.preventDefault) ev.preventDefault();
      }
    }
    <input type='text' onkeypress='validate(event)' />
        3
  •  1
  •   redneb    8 年前

    onkeyup="value=/^\d+$/.test(value)?value:1000"