我正在使用此代码阻止用户在文本框中输入数值:
$('input[type=text]').keydown(function(event) {
// Allow only backspace and delete
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 190) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
然而,这会阻止Tab键聚焦于下一个文本框。如果add this code指向keydown事件,则tab键可以正常工作,但用户根本无法在文本框中输入任何值,而tab键只会关注下一个框。之后,当再次按下Tab键时,它不会转到下一个框。
var code = event.keyCode || event.which;
if (code == 9) {
alert ("Tab key pressed");
}
return false;
以下是jsfiddle的代码:http://jsfiddle.net/N7BWF/1/
答案 0 :(得分:3)
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105))
这行代码包括9
(标签)。如果要启用&& event.keyCode != 9
,则必须将tab
添加到if条件。
答案 1 :(得分:0)
将代码片段放在函数开头的9处,并在if块return true;
var code = event.keyCode || event.which;
if (code == 9) {
return true;
}