jQuery在DIV上验证插件

Joh*_*dol 31 javascript jquery jquery-validate

我试图在div上使用validate插件,如此问题的答案所示:

<script type="text/javascript">
  $("#pseudoForm").validate({
    onfocusout:true,
    rules:{
      first_name:"required",
      last_name:"required"
    }
  });
</script>
<!-- whatever -->
<div id="pseudoForm">
  <input type="text" name="first_name"/>
  <input type="text" name="last_name"/>
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个表格.

我在不同的浏览器上遇到了一堆不同的错误.

  • Firefox:未定义的验证器
  • IE8:'settings'为null或不是对象
  • Chrome:无法读取未定义的属性"设置"

任何帮助赞赏!

Nic*_*ver 54

这不是你想听到的答案,但另一个答案是不正确的(它可能在发布时是正确的,但从那以后有几个主要的jQuery验证插件更改).

验证插件(目前)设计用于a <form>,用于a <form>.您还可以注意到,所有插件文档都引用了一个表单,而不是任何其他通用容器.

插件本身在validator.currentForm内部跟踪,它指this的是传入的选择器,获取.elements等关闭...它实际上不会以任何其他方式工作,而不是当前版本的编写方式.

总体溶液/替换的方法在这里:调用.validate()所述上<form>元件(jQuery的包装为它相当)直接,没有任何其它容器.如果您需要划分您的<form>使用<fieldset>元素,可能使用ignore: ':hidden'选项,.validate()如果您不想验证用户不可见的输入字段.