jQuery验证规则不适用于嵌套的html标记

时间:2011-09-10 15:58:32

标签: javascript jquery jquery-validate

我对jQuery中的validate方法有疑问并为其添加规则,所以说我有:

  $("#myform").validate({
  rules: {
  zip: {
    field: {
      required: true,
      maxlength: 5,
    }
  }
});

现在我的表单布局如下所示:

<body>
<div>
<form id="myform">
<label>
   <span>label</span>
   <input name="zip" type="text" id="zip" class="required" size="50">
</label>

<label>
         //some stuff here
</label>
</form>
</div>
</body>

问题是为什么验证不是用zip执行的?当我只是在一个正文中输入文本而没有任何其他工作。

3 个答案:

答案 0 :(得分:1)

您没有关闭Zip输入标记。它应该如下所示:

<input name="zip" type="text" id="zip" class="required" size="50" />

答案 1 :(得分:1)

首先,您无法将input置于label之内。它的组织方式如下:

<label for="cname">Name</label>
<input type="text" id="cname" name="cname" />

关闭input代码

<input name="zip" type="text" id="zip" class="required" size="50" />

    $(document).ready(function () {
        $("#myform").validate({
            rules: {
                zip: {
                    required: true,
                    maxlength: 4
                }
            }
        });
    });

答案 2 :(得分:1)

修改

我刚刚查看了您关联的网站以及jquery验证&amp;委托插件正在您的网站上投掷403(http://adityaherlambang.com/)。更新这些脚本的url引用,你应该很高兴。

验证:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js

<强>原始

看起来您的验证js有点偏差。尝试使用:

$("#myform").validate({
   rules: {
    zip: {
      required: true,
      maxlength: 4
    }
  }
});

相关小提琴:http://jsfiddle.net/gp4vB/