你應該嘗試寫一個checkNumber函數,它接受輸入的值作爲參數(而不是直接引用到函數內的每個字段)。例如:
var checkNumber = function (testval) {
if (isNaN(testval)) {
alert('Bad!');
// clean up field? highlight in red? etc.
} else {
// call your calculation function
}
}
然後將該函數綁定到每個表單字段的keyup
事件。有很多方法可以做到這一點。看看addEventListener()
,或者像jQuery這樣的框架的綁定功能(例如,.delegate()
或.keyup()
)。
請注意,如果您將函數綁定到事件,則不必顯式傳遞值參數。您應該可以通過this.value
在該功能內使用字段值。所以,你有這樣的事情:
var checkNumber = function() {
if (isNaN(this.value)) {
alert('Bad!');
// clean up field? highlight in red? etc.
} else {
// call your calculation function
}
}
然後(用天真的結合方法,通過ID):
document.getElementById('id_of_a_field').addEventListener('keyup', checkNumber, true);
什麼是'sInput','dInput'和'pInput'?顯示如何爲這些變量賦值。 –
爲什麼不直接將輸入讀入變量,如果爲空,則將其設置爲零? – Ali
對不起,這些輸入是用戶輸入的輸入,它們是從表單中提取的。我將編輯帖子以包含它們。 – zik