1

我想知道为什么 HTML5 还没有实现这个简单的输入数字验证

这是我的片段。我进不去 (句号)和 - (负数)

$('input[type="number"]').on('keypress', function(e){
    if (e.which < 48 || e.which > 57)
        {
            e.preventDefault();
            return false;
        }               
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" step="any" min="0" name="refund" class="form-control" >

但是当我尝试为句点启用keyCode时,我可以在文本框中输入很多句点。

$('.allow-decimal').on('keypress', function(e){
    if (e.which == 190)
        {
            return true;
        }               
 });
4

2 回答 2

0

html中有一些你可以使用的东西..

<form>
 Quantity (between 0 and 100): <input type="number" name="quantity" min="0" max="100" step=".01">
<input type="submit">
</form>
于 2018-09-13T06:39:45.610 回答
0
<input type="text" onfocus="this.oldvalue = this.value;" onkeyup="validateInput(this);this.oldvalue = this.value;" onchange="validateInput(this);this.oldvalue = this.value;" />

上面的一个是从这个问题中得到启发的,将捕获旧值以用于恢复目的,然后

function validateInput(input){
      if(isNaN(input.value)||input.value<0)
      {
        input.value = input.oldvalue;
      }

    }

这个应该工作

于 2018-09-13T07:09:49.767 回答