使用jQuery Validation插件验证引导程序表单时是否需要使用名称属性?

时间:2013-11-22 08:50:24

标签: jquery html twitter-bootstrap jquery-validate

仍然是新的,我刚刚开始使用bootstrap,但基本上在使用股票HTML时,我看到名字属性被这样使用

<label for="email" class="label">E-mail Address</label>
    <input name="email" type="text" id="email"> 

但是使用bootstrap通常没有使用名称attr。

     <div class="form-group">
        <label for="inputPassword" class="col-lg-2 control-label">Password</label>
        <div class="col-lg-5">
          <input type="password" class="form-control" id="inputPassword-" placeholder="Password">
        </div>
      </div>

我想我只是混淆了jquery验证器从中提取信息的地方。电子邮件是指名称attr还是标签?

    rules: {
      email: {
      required: true,
      email: true
    },

3 个答案:

答案 0 :(得分:4)

添加此答案以澄清在另一个答案中发布的一些含糊不清且误导性的信息。

引用标题:

  

“使用jQuery Validation插件验证引导程序表单时是否需要使用名称属性?”

什么样的形式无关紧要。使用jQuery Validation插件时,任何要验证的数据输入元素必须每个都包含一个唯一的name属性,句点...没有变通方法,没有例外。 name属性是jQuery Validation插件可以跟踪正在验证的数据输入元素的唯一方法。)

这意味着您无法使用.rules('add')方法解决此问题。我已经看到这在SO上不止一次被吹捧为没有name属性的元素的建议解决方法。这不行。 无论如何声明规则,数据输入元素必须仍具有name属性。

没有name属性的演示(验证中断):http://jsfiddle.net/L3u5n/

相同的演示,但name属性(工作验证):http://jsfiddle.net/L3u5n/1/


请参阅the "Reference docs" page标记建议部分。

  

“输入元素的name属性为必需,验证插件无法使用。”

答案 1 :(得分:2)

验证程序使用name属性查找字段,因为所有表单元素必须具有名称属性。

您发布的第二个HTML代码块因此无效。

答案 2 :(得分:0)

name必须在form元素中,您也需要jQuery validator

<小时/> 您也可以像{p>

一样使用jQuery validator

.rules( “add”, rules )

$("el").rules("add", {
    required: true,
    email: true
});