[英]Validate multiple form fields in one function
我有以下代碼用於驗證字段,因為您在字段中輸入值(紅色表示無效,綠色表示字段變為有效):
function FormValidation(){
var fn=document.getElementById("firstName").value;
if(fn == ""){
document.getElementById("firstName").style.borderColor = "red";
return false;
}else if (/^[0-9]+$/.test(document.getElementById("firstName").value)) {
document.getElementById("firstName").style.borderColor = "red";
return false;
}else if(fn.length <=2){
document.getElementById("firstName").style.borderColor = "red";
return false;
}else{
document.getElementById("firstName").style.borderColor = "#679f30";
}
}
其他領域也需要這些驗證。
我嘗試了一個for循環,但它無法驗證所有表單,因為上面的代碼對於一個字段:
function FormValidation(){
var array = ["firstName", "middleName", "lastName"];
for(i=0; i < array.length; i++){
var fn=document.getElementById(array[i]).value;
if(fn == ""){
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else if (/^[0-9]+$/.test(document.getElementById(array[i]).value)) {
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else if(fn.length <=2){
document.getElementById(array[i]).style.borderColor = "red";
return false;
}else{
document.getElementById(array[i]).style.borderColor = "#679f30";
}
}
}
所以我的問題是我做錯了什么? 或者有一種方法可以在一個函數中驗證多個表單,而無需反復編寫相同的代碼。
任何幫助深表感謝!
謝謝,Al
將id作為函數的參數傳遞並訪問受尊重的參數。 因此,不是一次又一次地編寫整個代碼,而是可以使用您的特定參數調用該函數。 function FormValidation(id){ var fn=document.getElementById(id).value; if(fn == ""){ document.getElementById(id).style.borderColor = "red"; return false; }else if (/^[0-9]+$/.test(document.getElementById(id).value)) { document.getElementById(id).style.borderColor = "red"; return false; }else if(fn.length <=2){ document.getElementById(id).style.borderColor = "red"; return false; }else{ document.getElementById(id).style.borderColor = "#679f30"; } }
使用參數調用函數作為您需要驗證的ID。 例如,
return FormValidation("firstName")
給他們相同的課,然后使用
getElementByClass
並循環通過它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.