我正在嘗試使它成爲所以我沒有爲每個輸入字段都寫一個函數,我想使用它。而是將元素ID發送給函數,並且只有一個函數可以回收。Javascript-將函數變量的元素id分配給事件監聽器
工作原理是這樣
<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>
因此,沒有人知道什麼是錯的第二個例子?我怎樣才能讓它工作。謝謝
嘗試更改爲'onKeyPress =「onlyNum(this)」'然後'this.keypress(function(e){...})'。你在使用jQuery嗎? – 2012-08-11 09:07:10
如果您使用的是jQuery,那麼上面的代碼非常低效且不必要。 – 2012-08-11 09:08:54