【发布时间】:2015-01-30 10:30:08
【问题描述】:
我无法禁用表单的验证。我尝试了其他问题和论坛的许多解决方案,例如:
1. $("#PatientForm").validate({ ignore: "*" });
2. $("#submitButton").addClass("cancel");
3. $('#PatientForm').validate().settings.ignore = ["*"];
4. $("#PatientForm").validate({ onsubmit: false });
5. $('#PatientForm').validate({ submitHandler: null });
而且 jQuery Validate 仍然想要验证所有字段。我正在尝试禁用复选框更改。复选框更改处理程序受到限制,因为我已经使用 FireBug 对其进行了检查,并且所有调用(1. 到 5.)都在没有任何错误消息的情况下执行。
这是我的验证配置:
// JQUERY VALIDATE - TURN ON VALIDATION ON SUBMIT + VALIDATE PESEL BEFORE SAVE
$('#PatientForm').validate({
submitHandler: function(form) {
var pesel = $('#Pesel').val();
var isValid = $(form).valid();
$.ajax({
type: 'GET',
url: '@Url.Action("IsPeselExisting", "Admin")',
data: { peselPar: pesel },
success: function (msg) {
if (msg["exists"] == 'true')
{
if (isValid == true)
{
if (confirm("Wprowadzony pesel już istnieje! Czy na pewno chcesz dodać użytkownika o kolidującym peselu"))
{
form.submit();
}
}
}
else
{
if (isValid == true)
{
form.submit();
}
}
}
});
}
});
// JQUERY VALIDATE - GENERAL SETTINGS
$('#PatientForm').validate().settings.ignore = [];
$("#PatientForm").validate({ ignore: ".ignored" });
// JQUERY VALIDATE - GENERAL SETTINGS
$.validator.addMethod("regex", function (value, element, regexp) {
return regexp.test(value);
}, "");
提前谢谢...
【问题讨论】:
-
这里有一些可能有用的提示:stackoverflow.com/questions/363268/…
-
上述问题的另一个解决方案帮助了我。禁用表单:
jQuery('#form').validate().currentForm = '';再次启用表单:jQuery('#form').validate().currentForm = jQuery('#form')[0];为什么 jQuery 验证如此不可预测? :( -
仍然显示验证消息(必需,我的自定义正则表达式)但允许提交...这个 Validate 库有什么问题,它是如此不可预测?
-
它没有任何问题,使用得当非常有预见性。
标签: jquery asp.net-mvc-4 jquery-validate