我有一个复选框列表,旁边是两个文本框,我只是在勾选各自的复选框时尝试验证这两个文本框。可能有多达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')
}
},
答案 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");
}
});