我制作了一些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>
但每当我输入内容时,似乎它被解雇了三次,例如一次按下输入我在控制台中得到三次“输入”而对于数字我得到三次“确定”,为什么会这样?我也用代表替换它并且直播,现场工作正常,但委托也被解雇了三次。谢谢。
答案 0 :(得分:0)
不是三个div中的输入#test吗?我想你在.on()中可能有错误的选择器。尝试使用类似的东西:
$("div").on("keydown", "input#test", checkKey);
无论如何请粘贴全身