Prevent negative inputs in form input type=“number”?

前端 未结 8 946
太阳男子
太阳男子 2020-12-12 16:58

I want to restrict user input to positive numbers in an html form.

I know you can set min=\"0\", however it is possible to bypass this by manually entering a negati

相关标签:
8条回答
  • 2020-12-12 17:54

    This uses Javascript, but you don't have to write your own validation routine. Instead just check the validity.valid property. This will be true if and only if the input falls within the range.

    <html>
    <body>
    <form action="#">
      <input type="number" name="test" min=0 oninput="validity.valid||(value='');"><br>
      <input type="submit" value="Submit">
    </form>
    </body>
    </html>

    0 讨论(0)
  • 2020-12-12 17:59

    The following script will only allow numbers or a backspace to be entered into the input.

    var number = document.getElementById('number');
    
    number.onkeydown = function(e) {
        if(!((e.keyCode > 95 && e.keyCode < 106)
          || (e.keyCode > 47 && e.keyCode < 58) 
          || e.keyCode == 8)) {
            return false;
        }
    }
    <input type="number" id="number" min="0">

    0 讨论(0)
提交回复
热议问题