【问题标题】:jquery validation rulesjQuery验证规则
【发布时间】:2009-08-25 19:56:22
【问题描述】:
  1. 我的电话验证取决于一个复选框(不,不要通过电话联系我)。如果选中此项,那么我将不需要运行电话验证。我四处搜索,发现“取决于” 功能。

我有

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

它不会引发错误,但仍会尝试验证电话号码。

  1. 根据规则:我如何确保 email 和 confirmEmail 相同?我有规则,消息是分开的。

【问题讨论】:

  • 在 IE7 中,我收到一条错误消息,指出发生了运行时错误。错误:预期的标识符、字符串或它指向的数字:phone1: { required: {depends: "#pri_noPhone:not(:checked)" }, number: true, minlength:3, },你知道这里发生了什么吗? FF 和 Firebug 不会给出同样的错误。

标签: jquery validation


【解决方案1】:

试试这样的:

"#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');这也有效 :) 谢谢大家!
  • 这对于复杂的东西非常有用。
  • 这是对您问题的模拟,您必须将其更改为使用 ID 或 CLASS 变量才能使其正常工作。我一直在使用它,而且效果很好。如果选中了复选框,则所需的属性函数返回 true 或 false
  • alert($('#pri_noPhone input:checked').val());这显示“未定义”。 没有默认值。
【解决方案2】:

你会用这样的东西:

$("#myForm").validate({
      rules: {
          username: {
           email: {
                required:true,
                email:true,
                maxlength:255,
            },
            confirmEmail: {
                required:true,
                equalTo: "#email"
            },
         } 
       }
     })

【讨论】:

  • equalTo:成功了。 Wiiii 没有你我该怎么办?谢谢一百万
【解决方案3】:

我认为您希望使用正确的选择器语法指定您的依赖关系:

required: {
    depends: "#pri_noPhone:not(:checked)"
}

编辑

史蒂夫在电子邮件中的回答:

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

【讨论】:

  • 亲爱的,验证 emailAddress = confirmEmailAddress 怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
相关资源
最近更新 更多