JQuery只允许使用键码的文本框中的数字输入
我想只允许在文本框中输入数字[0-9]。如果输入了字母或特殊字符,我不希望它显示在文本框中。目前我的代码如下:JQuery只允许使用键码的文本框中的数字输入
$('#TEXTBOX').on("keydown", function(event){
var keyCode = event.which;
if(!((keyCode > 47 && keyCode < 58) || (keyCode > 95 && keyCode < 106) || keyCode == 08)){
event.preventDefault();
}
});
我有几个问题。
该功能仍允许特殊字符[即(SHIFT + 1)给出了!(SHIFT + 2)给出了@]我不希望这些组合键,以便插入到文本框中
我正在使用幻数。我宁愿不使用魔术数字和逻辑,但这是我能够得到输入验证工作的唯一方法....是否有其他方法的任何建议?
我主要关心的是我的第一个特殊字符问题。
$('#TEXTBOX').on("keydown", function(event){
var keyCode = event.which;
var charCode = (event.charCode) ? event.charCode : ((event.keyCode) ? event.keyCode: ((event.which) ? evt.which : 0));
var char = String.fromCharCode(charCode);
var re = new RegExp("[0-9]", "i");
if (!re.test(char))
{
event.preventDefault();
}
});
用作
$('#TEXTBOX').on("keydown", function(event){
if(event.shiftKey)
return false;
var keyCode = event.which;
if(!((keyCode > 47 && keyCode < 58) || (keyCode > 95 && keyCode < 106) || keyCode == 08)){
event.preventDefault();
}
});
这仍然允许!#$%@与shift +数字组合... – ola 2014-09-22 15:26:14
$(document).ready(function() {
$("#txtboxToFilter").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});
请考虑添加一些解释如何以及为什么您的代码片段会回答OP问题。 – 2015-04-19 10:19:03
正如ola所述,上面的代码拒绝除了我在代码中提到的数字,小数和键作为注释之外的任何其他键组合。我希望这很清楚。如果有任何疑问仍然存在,请随时提问。 只需将这个jQuery文件添加到您的JSP,pHp页面,结果将在那里供您查看。 – Para 2015-05-03 16:27:18
工作对我来说(只允许使用数字)
var key = e.charCode || e.keyCode || 0;
alert(key);
if (key < 48 || key > 58)
return false;
我认为这个问题已经被问了很多次,但我就是无法找到链接 – andrex 2014-09-22 14:54:37
你可以使用[event.shiftKey](http://www.w3schools.com/jsref/event_shiftkey.asp) – Stryner 2014-09-22 14:55:17
可能的重复[如何只允许在数字(0-9)在HTML输入框使用jQuery?](http://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using- jQuery) – andrex 2014-09-22 14:55:40