我使用Jquery验证插件相当新,所以这就是我尝试做的事情。有两组地址。一个是物理地址字段,另一个是邮寄地址字段。
如果用户填写物理地址字段,则选中该框 - 邮件地址是否与物理地址相同?如果是,则禁用 - 灰色框。
提交表格时数据很好。
我挣扎的是,如果用户取消选中该框,则必须填写字段并提交表单。它应该保存。所以我为jquery插件创建了一个自定义验证,如下所示:
$('form').validate({
rules: {
ResidentalMailing: { validateMailing: true }
},
messages: {
ResidentalMailing: {
required: "You must fill in the mailing address if it is not the same as the physical address."
}
}
});
实际自定义验证器:
jQuery.validator.addMethod("validateMailing", function(value, element) {
// if it is unchcked
if (!$('#ResidentalMailing').is(':checked')) {
// change each field to yellow
$(".mailingaddy").each(function () {
$(this).css('background-color', '#ffff00');
});
// if the first field has a vlue of greater than one - data is there.
if ($('#Address1').val().length > 0) {
// it's okay to submit
return true;
}
// it's not okay to submit.
return false;
} else {
// if chcked.
$(".mailingaddy").each(function () {
// remove the yellow back ground
$(this).css('background-color', 'transparent');
// set it to grayed out/disabled
$(this).attr("disabled", true);
});
// it's okay to submit.
return true;
}
}, "You must fill in the mailing address fields.");
我不确定我错过了什么。我尝试了依赖路线,但它没有用。
简而言之 - 我只是在符合某些条件的情况下才允许提交......