如何在 Jquery 验证中为规则(针对多种形式)添加 IF ELSE 条件

How to add IF ELSE condition for rules (for multiple forms) in Jquery validation

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

例子

表格 1

<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
});

这不可能是同一个 ID 不起作用的原因,因此更改 ID name.then 使用以下代码: $().ready(函数() {

// 第一个表单验证 $("#commentForm").validate();

// 第二种形式验证 $("#signupForm").validate({

规则:{ 名字:"required", 姓氏:"required", 用户名: { 要求:真实, 最小长度:2 } }消息:{ 名字:"Please enter your firstname", 姓氏:"Please enter your lastname", } });

});

I am using jQuery validation to validate multiple forms with same id

  1. 不能在同一页面上多次使用相同的id。它无效 HTML,它会破坏你的 JavaScript。仅考虑 id 的第一个实例。

  2. 如果你把你的id改成class,那么你可以多次自由使用它,并且有效HTML。

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

    然而,jQuery 验证插件仍将仅考虑 第一个 实例(此特定插件的限制)。解决方法是使用 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
        });
    });
    

Each form contains different fields and I want to add these fields validation rules to jQuery validate function.

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

$('.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.
    });
});