簡體   English   中英

在一個函數中驗證多個表單域

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM