jQuery只允许正数或负数(不含小数)

时间:2017-01-26 11:53:33

标签: jquery

如何更改我的代码以接受负数,但没有小数?现在它只接受正数......

  $("#numbers").keydown(function (e) {
    if ($.inArray(e.keyCode, [46, 8]) !== -1 ||
      (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || 
      (e.keyCode >= 35 && e.keyCode <= 40)) {
        return;
    }
    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
      e.preventDefault();
    }
  })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="numbers" />

2 个答案:

答案 0 :(得分:1)

我不确定我理解这个问题。正如Rory McCrossan所提到的那样:

<input type="number" /> 

适用于您以某种方式提交的情况。 在这里试试:inputnumbers

在您的情况下,看起来您根本不希望用户能够使用十进制数字。
一种解决方案是做这样的事情:

<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : (event.charCode == 45 || event.charCode >= 48 && event.charCode <= 57)" />

试一试:tryme

答案 1 :(得分:0)

您可以使用parseInt()功能对输入数字进行舍入。

另外,如果你想丢弃小数字,你可以这样做:

var raw = $(input).val();
var rounded = parseInt(raw);
if (rounded < raw) {
   // discard logic..
}
相关问题