JQuery以编程方式验证

时间:2016-02-16 16:37:51

标签: jquery validation

我有一个复选框列表,旁边是两个文本框,我只是在勾选各自的复选框时尝试验证这两个文本框。可能有多达100个,所以我不想为所有100个写出这个,有没有更简洁的方法来做到这一点,我想我不能真正使用通配符,因为验证只需要踢当复选框的TransferModelViews索引与FlightNo&的索引匹配时StartDate文本字段

"TransferModelViews[0].TransferOptions[0].StartDate": {
    required: function () {
        return $("[name='TransferModelViews[0].TransferOptions[0].TransferSelected']").is(':checked')
    }
},
"TransferModelViews[0].TransferOptions[0].FlightNo": {
    required: function () {
        return $("[name='TransferModelViews[0].TransferOptions[0].TransferSelected']").is(':checked')
    }
},
"TransferModelViews[1].TransferOptions[0].StartDate": {
    required: function () {
        return $("[name='TransferModelViews[1].TransferOptions[0].TransferSelected']").is(':checked')
    }
},
"TransferModelViews[1].TransferOptions[0].FlightNo": {
    required: function () {
        return $("[name='TransferModelViews[1].TransferOptions[0].TransferSelected']").is(':checked')
    }
},

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题

 $("[name*='TransferSelected']").change(function () {

        $("#bookingholiday").validate();

        var indexStr = $(this).attr('myval');

        if ($(this).is(":checked")){
            $("[name='TransferModelViews[" + indexStr + "].TransferOptions[0].StartDate']").rules("add", { required: true });
            $("[name='TransferModelViews[" + indexStr + "].TransferOptions[0].FlightNo']").rules("add", { required: true });
        }
        else {
            $("[name='TransferModelViews[" + indexStr + "].TransferOptions[0].StartDate']").rules("remove", "required");
            $("[name='TransferModelViews[" + indexStr + "].TransferOptions[0].FlightNo']").rules("remove", "required");
        }
    });