2012-11-24 57 views
0

我必須要求用戶的姓名和身份證號碼。使用事件處理程序,如模糊或提交事件,並檢查用戶文本框不是空的,ID是一個數字,如果錯誤,我必須放置一個警告框。模糊事件和JavaScript/html

這裏是我的html代碼...

<form id = "form" action = ""> 
    <p> 
     <label class = "classname" for = "name">Username:</label> 
     <input type = "text" id = "name" placeholder = "enter your Username"> 
    </p> 
    <p> 
     <label class = "classname" for = "idnum">ID Number:</label> 
     <input type = "text" id ="idnumber" placeholder = "enter id number"> 
    </p> 
</form> 

,這裏是我的javascript代碼...

var helpArray = ["your doing it wrong", "your wrong"] 
var helpText; 

function init(){ 
    helpText = document.getElementById("helpText"); 
    registerListeners(document.getElementById("name"),0); 
    registerListeners(document.getElementById("idnumber"),0); 
} 

function registerListeners(object, messageNumber){ 
    object.addEventListener("blur",function(){ 
      helpText.innerHTML = helpArray [0]; 
    }, false); 

    object.addEventListener("focus",function(){ 
      helpText.innerHTML = helpArray [messageNumber]; 
    }, false); 
} 
window.addEventListener("load",init,false); 

,你可以看到我一直只是想通過我的書去, havnt取得了很大進展。

+1

這本教科書多大了? –

+0

您目前使用的代碼將'helpText'內容設置爲'focus'和\ blur兩個元素上的相同消息,所以它似乎從未改變過。你可能應該將它設置爲'blur'上的空字符串,你的'helpArray'也有兩條消息 - 你打算每個字段應用一個嗎?試試這個:http://jsfiddle.net/FGE6p/(作爲一邊,我假設你的最終代碼將會有友好和描述性的錯誤信息?) – nnnnnn

+0

我該如何讓它檢查2種情況?而且,最終的代碼將會有更好的錯誤信息。 – Alex

回答

0

而不是調用函數的次數太多,你可以使用簡單的代碼就像一個below.Calling功能在javascript多次可能會導致性能成本

window.onload = init; 

    function init(){ 
     helpText = document.getElementById("helpText"); 
     document.getElementById("name").onblur = function() { 
      helpText.innerHTML = helpArray [0];}, false); 
     } 
     document.getElementById("idnumber").onblur = function() { 
      helpText.innerHTML = helpArray [0];}, false); 
     } 
    } 

您可以將功能分配給像上面例子的任何事件,你也可以使用onfocus,onkeyUp ..等等。