2012-09-02 36 views
0

我有幾個輸入字段應該只有數字作爲有效輸入,因此在搜索完SO之後,我得到了以下js代碼以允許僅將數字輸入到文本字段工作得很好。用於向用戶報告錯誤報告的Javascript目標特定div

function onlyNumbers(evt) { 
    var theEvent = evt || window.event; 
    var key = theEvent.keyCode || theEvent.which; 
    key = String.fromCharCode(key); 
    var regex = /[0-9]|\./; 
    if(!regex.test(key)) { 
     theEvent.returnValue = false; 
     if(theEvent.preventDefault) theEvent.preventDefault(); 

     // the corresponding span to make it visible here 
     // What code to put here ? 

    } 
} 

相應的HTML是

<input type="text" id="age1" onkeypress="onlyNumbers(event)" /> 
<input type="text" id="mobileNo" onkeypress="onlyNumbers(event)" /> 

現在,我有每個這樣的輸入文字,我想只要一個無效的字符鍵入顯示後隱藏span?由於有許多這樣的字段,因此有許多這樣的字段

例如, age1,age2,mobileNo,每個人都有自己的兄弟姐妹跨度。 因此,當age1輸入錯誤時,它會顯示相應的錯誤消息範圍。

這裏是參考

<form method="POST" action="action.php"> 
    ... 
<li>Age of person 1 : 
    <input type="text" id="age1" onkeypress="onlyNumbers(event)" /> 
    <span class="error_msg age1"> Only numbers please </span> 
</li> 
<li>Age of person 2 : 
    <input type="text" id="age2" onkeypress="onlyNumbers(event)" /> 
    <span class="error_msg age2"> Only numbers please </span> 
</li> 
<li> 
    <input type="text" id="mobileNo" onkeypress="onlyNumbers(event)" /> 
    <span class="error_msg mobileNo"> Only numbers please </span> 
</li> 
... 
</form> 

如何從該onlyNumbers()函數被調用的元素的參考最小完整的HTML代碼?以及如何使相應的跨度可見?有任何想法嗎 ?

回答

1
var fld = theEvent.target || theEvent.srcElement; 

在這裏,您可以訪問ID或同級節點

如果改爲或也通過(這個)你有你的領域

+0

大真正幫助!!!! – mtk