我制作了一些 jQuery 代码来防止用户输入字符,但只能输入数字:
$("div").on("keydown", ":text", checkKey);
function checkKey(e) {
var n = e.keyCode;
if (n == 13) {
$(this).closest("form").submit();
console.log('enter');
}
else if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
if (!((n == 8)
|| (n == 46) || (n == 9)
|| (n >= 35 && n <= 40)
|| (n >= 48 && n <= 57)
|| (n >= 96 && n <= 105))
) {
e.preventDefault();
console.log('ok');
}
}
}
以html结尾:
<div>
<input type="text" id="test" />
</div>
但是每当我输入一些东西时,它似乎被触发了三次,例如,按一次输入,我在控制台中得到三个“输入”,而对于数字,我得到三个“确定”,这是为什么呢?我也将其替换为代表和现场,现场工作正常,但代表也被解雇了 3 次。谢谢。