jQuery验证规则

4
  1. 我的电话验证依赖于复选框(不,不要通过电话联系我)。如果选中此复选框,则我将不需要运行电话验证。我在Google上搜索并找到了“depends”函数。

我有:

  $("#myForm").validate({
  ....
  rules: {
  phone1: {
    required: {
      depends: "!#pri_noPhone:checked"
    },
    number: true,
    minlength:3,
    }

它不会抛出错误,但仍然尝试验证电话号码。

  1. 按照规则,我如何确保电子邮件和确认电子邮件相同?我已将规则和消息分开。

在IE7中,我收到一个错误提示: 运行时错误。 错误:期望标识符、字符串或数字。它指向: phone1: { required: { depends: "#pri_noPhone:not(:checked)" }, number: true, minlength:3, }, 你知道这里发生了什么吗?FF和Firebug没有给出相同的错误。 - CFNinja
3个回答

7
尝试像这样做:

尝试像这样做:

"#phone1": {
   number: true,
   minlength:3,
   required: function(element){
      return ($('#pri_noPhone_wrapper input:checked').val() == 'True');
   }
}

这段HTML代码(在看完之后我忘了添加外层HTML标签)

<span id='pri_noPhone_wrapper'>
Phone:
<input type="checkbox" name="pri_noPhone" value="what ever" />
</span>

return ($('#pri_noPhone input:checked').val() == 'true'); 这也可以运作 :) 感谢大家! - CFNinja
这对于复杂的事情非常有用。 - Joel
这是您问题的模拟,您需要更改它以使用ID或CLASS变量使其正常工作。我经常使用它,效果很好。所需属性函数会返回true或false,如果复选框被选中。 - Phill Pafford
警告($('#pri_noPhone input:checked').val()); 这将显示“未定义”。<input type="checkbox" name="pri_noPhone" id="pri_noPhone"/> 没有默认值。 - CFNinja

2
我认为你想要使用正确的选择器语法来指定你的依赖关系:
required: {
    depends: "#pri_noPhone:not(:checked)"
}

编辑

Steve在邮件中的回复:

confirmEmail: {
    required:true,
    equalTo: "#email"
},

太棒了,那验证 emailAddress 和 confirmEmailAddress 是否相同呢? - CFNinja

2
您可以使用类似以下的内容:
$("#myForm").validate({
      rules: {
          username: {
           email: {
                required:true,
                email:true,
                maxlength:255,
            },
            confirmEmail: {
                required:true,
                equalTo: "#email"
            },
         } 
       }
     })

equalTo:解决了问题。嗷呜!没有你们在这里,我该怎么办呢? 非常感谢! - CFNinja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接