我无法停用表单的验证。我尝试过其他问题和论坛的许多解决方案,如:
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);
}, "");
提前致谢...
答案 0 :(得分:2)
一旦在表单上初始化了jQuery Validate插件,就没有已知的方法来禁用它......句点。
您尝试失败的原因是您无法在同一表单上多次调用.validate()
方法。初始化后,对.validate()
的任何后续调用都将被忽略。
$('#myform').validate({ /* your settings */ }); // <- initialize plugin
// later ...
$('#myform').validate({ /* new settings */ }); // <- ALWAYS IGNORED!!
但是,要提交表单数据未经验证,请在class="cancel"
type="submit"
或input
元素上添加button
。这样做的好处是虽然绕过了验证,但插件却没有,所以如果您使用submitHandler
,它仍会被触发。
<input type="submit" class="cancel" value="SAVE" />
OR
<button type="submit" class="cancel">SAVE</button>
工作演示:http://jsfiddle.net/yan98120/
其他问题:
您无法在form.submit()
函数内的任何位置执行ajax()
;将submit()
放在ajax()
success
回调中只是无稽之谈。 success
中的.ajax()
回调意味着表单已经使用Ajax成功提交。因此,当Ajax已经完成发送表单时,.submit()
中的success
完全没有意义。
您的&#34;设置&#34;部分也没有意义。首先,您使用ignore
将[]
设置为.settings.ignore
,然后立即在ignore
方法中将".ignored"
设置为.validate()
。为您的设置选择一种方法和一组参数并坚持下去。
我试图解释你的其他一个问题,please see the SO Tag Wiki page for a basic demo and hints on proper usage。