如何更改我的代码以接受负数,但没有小数?现在它只接受正数......
$("#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" />
答案 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..
}