jQuery有条件地验证选择字段

时间:2012-02-14 02:02:11

标签: javascript jquery jquery-validate

我需要能够根据特定选择字段的内容有条件地要求验证某些字段。例如,我有以下选择:

<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 个答案:

答案 0 :(得分: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] + "();");
}

你可以使用函数进行实际验证:

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

for循环中的eval()将根据推送到validations数组的内容执行验证例程。

通过这种方式,您可以根据已满足的条件对您的验证进行细分,而且您不必编写一个更容易出错的单片验证函数。

封装所有东西!! : - )