jQuery Validator - 覆盖来自服务器

时间:2015-06-18 14:32:35

标签: javascript jquery jquery-validate

我使用jQuery Validator来处理简单表单。一切都按预期工作,但我想稍微修改一下验证过程。我已经集成了一个小的Ajax请求来测试输入的电子邮件是否已存在于数据库中。如果电子邮件已存在,则回复为1,否则为0。我注意到,如果电子邮件无效,则会在label字段下创建input标记:

<label id="email-error" class="error" for="email">This field is required.</label>

是否可以覆盖此生成的标签(在jQuery Validator验证提供的电子邮件有效之后),以指示此电子邮件是否存在于数据库中?
假设,对于1,生成的label将如下所示:

<label id="email-error" class="error" for="email">This Email is already in use.</label>

这是验证器的当前配置:

var $validator=$("#form-register").validate({
rules:{
     email:{
     required: true
     }
  }
});

这是HTML表单:

<form id="form-register" class="p-t-15" role="form">
   <div class="form-group form-group-default" id="email_div">
      <label>What's your email address?</label>
      <div>
         <input type="email" class="form-control" name="email" id="email" placeholder="Email">      
      </div>
   </div>
</form>

1 个答案:

答案 0 :(得分:1)

您可以在此处使用remote选项:

$( "#form-register" ).validate({
  rules: {
    email: {
      required: true,
      email: true,
      remote: "check-email.php"
    }
  }
});
  

制作所需的电子邮件字段,电子邮件并执行远程请求以检查是否已获取给定的地址。另外,http方法设置为&#34; post&#34;并且用户名将与电子邮件地址一起发送。

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