我使用jQuery验证插件进行了混合的客户端/服务器端验证.验证发生在提交和某些变更字段上.表格通过
AJAX提交.在更新数据库之前,应用程序还有另一个验证.
如果由于此验证失败而未将数据更改存储到数据库,我将通过 JSON将结果返回到处理AJAX表单提交的JS方法.
理想情况下,我会通过类似的方式将后端传递给JS的自定义消息引发错误
$.validator.showErrors(OBJ);
如 here所述
不幸的是,validator.showErrors(…)方法没有在该上下文中定义:
如果由于此验证失败而未将数据更改存储到数据库,我将通过 JSON将结果返回到处理AJAX表单提交的JS方法.
理想情况下,我会通过类似的方式将后端传递给JS的自定义消息引发错误
$.validator.showErrors(OBJ);
如 here所述
不幸的是,validator.showErrors(…)方法没有在该上下文中定义:
$(document).ready(function() {
$('.form').each(function() {
$(this).submit(function(e) {
e.preventDefault();
if ($.submitForm()) {
(...)
$.post(url,$.param(context),function(data) {
if (!data.success) {
$.validator.showErrors(...);
//$("#basicdetails").validate();
}
},"json");
}
(...)
您还可以看到我尝试过表单重新验证,这也应该触发相应的错误(尽管更多的是真正解决方案的黑客攻击).
我想保留静态客户端验证,并在ajax提交后能够引发可能在后端发生的任何错误.
感谢您提供任何帮助.
帕维尔
解决方法
.validate()用于设置验证,触发它你应该像这样使用
.valid():
$("#basicdetails").valid();