ユーザーが文字を入力するのを防ぎ、数字だけを入力するのを防ぐための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 回起動されているように見えます。また、デリゲートとライブに置き換えました。ライブは正常に機能しましたが、デリゲートも3回解雇されました。ありがとう。