2012-02-14 30 views
0

我需要能夠有條件地要求根據特定選擇字段的內容驗證某些字段。例如,我有以下選擇:jQuery驗證有條件地選擇字段

<select name="new_jobType"> 
<option value="">Please select</option> 
<option value="1">option 1</option> 
<option value="2">option 2</option> 
<option value="3">option 3</option> 
<option value="4">option 4</option> 
</select> 

如果選擇「選項4」,我需要包括其他的5-6選擇字段進行驗證。

任何幫助將不勝感激。

回答

1

我可能會做這樣的事情:

var validations = new Array(); 

$('select[name="new_jobType"]').change(function() { 
    var thisJob = $(this + " option:selected").val(); 

    if(thisJob == 4) { 
     validations.push("thisJobValidations"); 
    } 
}); 

只需按下需要運行到該驗證陣列任何驗證程序,然後在提交:

for(var i = 0; i < validations.length; i++) { 
    eval(validations[i] + "();"); 
} 

而你也有功能( s)做實際驗證:

function thisJobValidations() { 
    // validation magic happens here 
} 

eval()裏面t他for循環將根據已被推入validations陣列的內容執行驗證例程。

通過這種方式,您可以根據滿足什麼條件來細分驗證,而且您不必編寫一個容易出錯的單片驗證函數。

封裝所有的東西! :-)