jquery.validate:多个远程规则

时间:2012-11-08 06:58:34

标签: jquery validation

我计划使用两个远程规则验证单个文本字段。更像这样。

$('#form').validate({
   rules:{
      remote: 'url1.php',
      remote: 'url2.php'
   },
   messages:{
      remote: 'Error1',
      remote: 'Error2'
   }
});

这可能吗?我想要两个远程规则的单独错误消息。

希望得到一些帮助!

3 个答案:

答案 0 :(得分:2)

首先我会说,据我所知,您必须将验证方法嵌套在某个属性下 - 您不能只将它们放在全局范围内。这将使您的代码看起来像这样:

$('#form').validate({
   rules:{
      attribute1: {
        remote_check_1: true,
        remote_check_2: true
      }
   },
    messages:{
      attribute1:{
        remote_check_1: 'Error1',
        remote_check_2: 'Error2'
      }
    }

});

我不知道你是否可以把它们放在规则对象下并为它们提出不同的错误信息。

您可以做的是创建两个自定义验证函数,每个函数都有不同的名称。结果如下:

$.validator.addMethod(
    "remote_check_1",
    function(value, element) {
      res = $.ajax({url: 'url1.php', data: { attribute1: value }, dataType: 'json'});
    return res;
    }
 );



$.validator.addMethod(
        "remote_check_2",
        function(value, element) {
          res = $.ajax({url: 'url2.php', data: { attribute1: value }, dataType: 'json'});
        return res;
        }
     );

答案 1 :(得分:0)

jquery.validation不支持单个字段中的多个远程验证。

但是您可以通过合并服务器端的验证处理程序来合并两个远程验证。

答案 2 :(得分:0)

$。validator.addMethod(“ remote_check_1”,function(value,element){var data; $ .ajax({url:'url1.php',type:'post'data:{attribute1:value},dataType :'json',异步:false,成功:function(res){data = res}});返回数据;});

$。validator.addMethod(“ remote_check_2”,function(value,element){var data; $ .ajax({url:'url.php',type:'post'data:{attribute1:value},dataType :'json',异步:false,成功:function(res){data = res}});返回数据;});