我使用jQuery验证插件进行了混合的客户端/服务器端验证.验证发生在提交和某些变更字段上.表格通过AJAX提交.在更新数据库之前,应用程序还有另一个验证.如果由于此验证失败而未将数据更改存储到数据库,我将通过JSON将结果返回到处理AJAX表单提交的JS方法.理想情况下,我会通过类似$ .validator.showErrors(obj)之类的东西将后端传递给JS的自定义消息引发错误.正如这里讨论的那样, 遗憾的是,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");
}
(...)
Run Code Online (Sandbox Code Playgroud)
您还可以看到我尝试过表单重新验证,这也应该触发相应的错误(尽管更多的是真正解决方案的黑客攻击).
我想保留静态客户端验证,并在ajax提交后能够引发可能在后端发生的任何错误.
感谢您提供任何帮助.
帕维尔