防止用户将0作为输入

时间:2016-06-30 15:54:49

标签: javascript jquery html

我试图阻止用户在输入框中输入0。

HTML code:

<input class="billMenuQuantity" type="number" name="quantity">

Jquery代码:

   $('.billMenuQuantity').on('keyup keydown', function (e) {
        if ($(this).val() < 1 && e.keyCode != 46 && e.keyCode != 8) {
            e.preventDefault();
            $(this).val(1);
        }
    });

它阻止用户输入0,但它也阻止用户输入除1之外的任何其他单个数字(即2-9)。它接受双位数字(即11,12等)。

任何人都能帮助我吗?

2 个答案:

答案 0 :(得分:2)

  

只需测试code === 96input-value

的长度

&#13;
&#13;
$('.billMenuQuantity').on('keyup keydown', function(e) {
  var code = e.keyCode || e.which;
  if (this.value.length === 0 && code === 96) {
    e.preventDefault();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input class="billMenuQuantity" type="number" name="quantity">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个

$(this).val() == 0代替$(this).val() < 1

$('.billMenuQuantity').on('keyup keydown', function (e) {
    if ($(this).val() == 0 && e.keyCode != 46 && e.keyCode != 8) {
        e.preventDefault();
        $(this).val(1);
    }
});