JQuery验证器 - 如何强制它显示其他错误?

时间:2014-11-02 09:13:23

标签: javascript jquery asp.net ajax unobtrusive-validation

在ajax表单上回发我收到了JSON-ed服务器端验证错误(像这样:" Input.Name:{Errors}"),所以我想知道我是否可以这样做:

$.validator. ... ( json );
$("form").validate();

因此表单再次得到验证,但显示服务器响应中的新错误(显示字段错误并执行错误的字段突出显示)。

到目前为止,我发现了很多建议手动完成的解决方案,即添加错误元素/类以及jquery验证器所做的其他工作。我更喜欢这样做并重用jquery验证器功能,但我仍然无法找到。是不可能的?我会很感激任何指示。

编辑暂时我只是提醒所有错误。理想情况下,我想让这段代码尽可能简单。

if (response && response.Tag && response.Tag == "Success") {
     window.location = response.State;
 }

 if (response && response.Tag && response.Tag == "ValidationError") {
     $.each(response.State, function (i, item) {
         alert(item.Errors.join("; "));
     });
 }

1 个答案:

答案 0 :(得分:0)

如果您愿意将每个字段的验证分解为另一个ajax服务 - 每个字段的验证服务,您可以使用jQuery验证。如果请求结果为true,则认为该字段有效,并且当请求结果为某个字符串时,该字符串被假定为错误消息。请查看下面的代码(它来自validate remote method documentation):



$( "#myform" ).validate({
  rules: {
    email: {
      required: true,
      email: true,
      remote: {
        url: "check-email.php",
        type: "post",
        data: {
          username: function() {
            return $( "#username" ).val();
          }
        }
      }
    }
  }
});