如何禁用负值并允许十进制值作为输入类型的数字?

时间:2018-09-13 04:22:56

标签: javascript jquery html

我想知道为什么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;
        }               
 });

2 个答案:

答案 0 :(得分:0)

您可以使用html中的某些内容。

<form>
 Quantity (between 0 and 100): <input type="number" name="quantity" min="0" max="100" step=".01">
<input type="submit">
</form>

答案 1 :(得分:0)

<input type="text" onfocus="this.oldvalue = this.value;" onkeyup="validateInput(this);this.oldvalue = this.value;" onchange="validateInput(this);this.oldvalue = this.value;" />

以上question的启发将捕获旧值以用于还原 然后

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

    }

这应该工作