2014-03-04 41 views
0

我正在嘗試爲表單驗證編寫js代碼。我這個代碼,我首先要檢查是否字段爲空上前:表單驗證在第一次迭代時停止

var validationInfo = {"displayname" : {}, "password" : {}, "email" : {}, "username" : {}}; 

document.newUser.onsubmit = function() { 
    for(key in validationInfo) { 
     var field = document.getElementById(key); 
     if(field.value == "") { 
      field.setAttribute("style","background-color: yellow;"); 
      field.select(); 
      return false; 
     }//checking empty fields 
    }//check validation 
    return true; 
} 

當我只提交第一個字段的形式變爲黃色,所以我認爲,確認第一次迭代後停止。 「返回假」定位錯誤?

第二個問題,如果我想檢查其他字段是否爲空,我應該在同一個函數還是另一個函數中執行?最佳做法是什麼?

感謝

+0

刪除'返回false;' –

+0

返回使其停止迭代,IMO –

+0

@kristjanreinhold:這是一個事實,不是一種意見;-) – Cerbrus

回答

2

使用一個變量_valid而且如果發生任何驗證錯誤分配給假。返回這個變量。

var validationInfo = {"displayname" : {}, "password" : {}, "email" : {}, "username" : {}}; 

document.newUser.onsubmit = function() { 
    var _valid = true; 
    for(key in validationInfo) { 
     var field = document.getElementById(key); 
     if(field.value == "") { 
      field.setAttribute("style","background-color: yellow;"); 
      field.select(); 
      _valid = false; 
     }//checking empty fields 
    }//check validation 
    return _valid; 
} 
+1

爲什麼'_valid',而不是不使用隨機下劃線的東西,並且更具描述性,比如:'formIsValid'?只是在這裏挑剔;-) – Cerbrus

相關問題