我正在使用 MVC3 和不显眼的验证。在某些情况下,如果选择了两个字段,即使表单不完整,我也想提交表单。我使用的 JavaScript 如下:
$('#form_section11').submit(function () {
//event.preventDefault(); //stops form from submitting immediately
var validatorSection11 = $('#form_section11').validate();
if (!$(this).valid()) {
// or family name and date of birth
var FamilyNameExists = true;
var DateOfBirthExists = true;
if (validatorSection11.errorMap["FamilyName"]) { FamilyNameExists = false; }
if (validatorSection11.errorMap["DateOfBirth"]) { DateOfBirthExists = false; }
// show the partial save rules
$('#ParitalSaveIntructions').show();
// show the partial save checkbox
if (FamilyNameExists && DateOfBirthExists) {
$("#AgreePartialSave").show();
if ($("#PartialSave").is(':checked')) {
// partial save has been requested
return true; //// <- save not happening, INCORRECT action
}
// clear perinatalWomanView_PartialSave
$("#PartialSave").removeAttr('checked');
}
return false; // <- save not happening, correct action
}
return true; // <- save happens, correct action
});
用户会看到一个复选框以确认不完整的提交。我已经指出了 JavaScript 工作的地方和失败的地方。
我也加了
var validatorSection11 = $('#form_section11').validate(
{
onsubmit: false
}
);
这没有效果。我的问题是:
为什么原版return true
不能用?我使用onsubmit: false
正确吗?有没有更好的方法来做到这一点?
提前致谢。