これを使用したいすべての入力フィールドに書き込み関数を持たないようにしようとしています。むしろ、要素IDを関数に送信し、リサイクルできる関数を1つだけ持つ.
このように動作します
<input name="field" id="field" type="text" onKeyPress="onlyNum()" />
<script type="text/javascript">
function onlyNum() {
var name = $("#field");
name.keypress(function (e) {
if (e.which > 0 && // check that key code exists
e.which != 8 && // allow backspace
!(e.which >= 48 && e.which <= 57) // allow 0-9
) {
e.preventDefault();
}
});
}
</script>
しかし、それはこのようには機能しませんが、これは私がしようとしていることです:
<input name="field" id="field" type="text" onKeyPress="onlyNum('field')" />
<script type="text/javascript">
function onlyNum(theInput) {
var name = document.getElementById(theInput);
name.keypress(function (e) {
if (e.which > 0 && // check that key code exists
e.which != 8 && // allow backspace
!(e.which >= 48 && e.which <= 57) // allow 0-9
) {
e.preventDefault();
}
});
}
</script>
では、2 番目の例の何が問題なのか、誰にもわかりませんか? そして、どうすればそれを機能させることができますか。ありがとう