如何在Jquery验证中为规则(对于多个表单)添加IF ELSE条件

时间:2015-05-15 05:54:47

标签: javascript jquery forms jquery-validate

我正在使用jQuery验证来验证具有相同ID的多个表单。每个表单包含不同的字段,我想将这些字段验证规则添加到jQuery验证功能。如何为多个表单添加这些规则(每个表单具有相同的ID)?

实施例

Form1中

<form id="new-form">
    <input type="text" name="name" value=""/>
    <input type="text" name="email" value=""/>
    <input type="submit" name="submit" value="submit"/>
</form>

表格2

<form id="new-form">
    <input type="text" name="mobile" value=""/>
    <input type="text" name="address" value=""/>
    <input type="submit" name="submit" value="submit"/>
</form>

JavaScript函数

$('#new-form').validate({
    // I want to add rules here for both forms
});

2 个答案:

答案 0 :(得分:0)

这是不可能的原因同一个id不起作用所以更改id名称。然后使用下面的代码: $()。ready(function(){

//第一次表单验证         $(&#34;#commentForm&#34)。验证();

//第二次表单验证 $(&#34;#signupForm&#34)。验证({

规则:{                 名字:&#34;必需&#34;,                 姓氏:&#34;必需&#34;,                 用户名: {                     要求:是的,                     最小长度:2                 }     } messages:{                 名字:&#34;请输入你的名字&#34;,                 姓氏:&#34;请输入您的姓氏&#34;, }      });

});

答案 1 :(得分:0)

  

我正在使用jQuery验证来验证具有相同id

的多个表单
  1. 无法在同一页面上多次使用相同的id。它的HTML无效,它会破坏您的JavaScript。只会考虑id的第一个实例。

  2. 如果您将id更改为class,那么您可以多次自由使用它,并且它是有效的HTML。

    <form class="new-form">...</form>
    <form class="new-form">...</form>
    

    但是,jQuery Validate插件仍然只会考虑第一个实例(此特定插件的限制)。解决方法是使用jQuery .each()class命名...

    $('.new-form').each(function() { // select every form on the page with class="new-form"
        $(this).validate() { // initialize plugin on every selected form
            // rules for both forms
        });
    });
    
  3.   

    每个表单包含不同的字段,我想将这些字段验证规则添加到jQuery验证函数。

    只需声明两种表格的所有规则。该插件将忽略表单上不存在的任何字段名称。

    $('.new-form').each(function() { // select every form on the page with class="new-form"
        $(this).validate() { // initialize plugin on every selected form
            rules: {
                name: {
                    required: true
                },
                email: {
                    required: true
                },
                mobile: {
                    required: true
                },
                address: {
                    required: true
                }
            },
            // other options, etc.
        });
    });