无法禁用jQuery验证
我无法禁用窗体的验证。我尝试过其他问题和论坛的许多解决方案,如:无法禁用jQuery验证,jquery,asp.net-mvc-4,jquery-validate,Jquery,Asp.net Mvc 4,Jquery Validate,我无法禁用窗体的验证。我尝试过其他问题和论坛的许多解决方案,如: 1. $("#PatientForm").validate({ ignore: "*" }); 2. $("#submitButton").addClass("cancel"); 3. $('#PatientForm').validate().settings.ignore = ["*"]; 4. $("#PatientForm").validate({ onsubmit: false }); 5. $('#PatientForm
1. $("#PatientForm").validate({ ignore: "*" });
2. $("#submitButton").addClass("cancel");
3. $('#PatientForm').validate().settings.ignore = ["*"];
4. $("#PatientForm").validate({ onsubmit: false });
5. $('#PatientForm').validate({ submitHandler: null });
jqueryvalidate仍然希望验证所有字段。我正试图改变复选框。复选框更改处理程序被限制,因为我已经用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);
}, "");
提前感谢…一旦jQuery验证插件在表单上初始化,就没有已知的方法来禁用它。。。句号 尝试失败的原因是无法在同一表单上多次调用
.validate()
方法。初始化后,对.validate()
的任何后续调用都将被忽略
$('#myform').validate({ /* your settings */ }); // <- initialize plugin
// later ...
$('#myform').validate({ /* new settings */ }); // <- ALWAYS IGNORED!!
或
保存
工作演示:
其他问题:
ajax()
函数中的任何位置执行form.submit()
;将submit()
放在ajax()
success
回调中完全是胡说八道。.ajax()
中的success
回调意味着表单已经使用ajax成功提交。因此,当Ajax已经发送完表单时,成功
中的.submit()
毫无意义.settings将ignore
设置为[]
。ignore
,然后立即在.validate()
方法中将ignore
设置为。忽略“
。为您的设置选择一种方法和一组参数,并坚持使用
jQuery('#form').validate().currentForm=''再次启用表单:jQuery('#form').validate().currentForm=jQuery('#form')[0]代码>为什么jQuery验证如此不可预测?:(仍然显示验证消息(必需,我的自定义正则表达式),但允许提交…此验证库有什么问题,它如此不可预测?它没有任何问题,正确使用时非常可预测。那么是否有方法在某些文件上保留“正则表达式”验证,并在所有字段上关闭“必需”?我正在使用您首先提到的“设置”部分用于禁用隐藏文件验证,然后启用“.ignored”验证。@XaweryWiśniowiecki,您可以使用.rules('add')
和.rules('remove')
方法动态更改规则。请参阅:我认为您在第1点上有错误。(其他问题)。这.ajax()调用
只是为了检查IsPeselExisting
(Pesel的数字对于波兰的任何人来说都是不同的。我不能用验证来做这件事,只是为了问DB),然后如果成功(Pesel不同于DB中的任何Pesel),它就会提交表单。我认为唯一错误的陈述是var isValid=$(表单).valid();
。因为进入submitHandler意味着表单已经有效。我现在是吗?@XaweryWiśniowiecki,是的,进入submitHandler
意味着表单已经有效。使用class=“取消”时例外“
在“提交”按钮上,然后进入submitHandler
,无需验证。但是,如果只需要检查数据库以查看是否存在某些内容,则应使用remote
规则/方法。
<input type="submit" class="cancel" value="SAVE" />
<button type="submit" class="cancel">SAVE</button>