jquery - 为 jQuery 验证插件动态设置规则/消息对象

标签 jquery jquery-validate

我确信有更好的方法来实现这一点,但无法弄清楚。我有一个表单,顶部有两个始终需要的字段。然后,我有一系列选项卡,这些选项卡在选择时会加载到不同的字段中(加载单独的 HTML block ,以便在提交表单时仅提交 DOM 中当前的内容)。我正在使用 jquery 验证插件( http://docs.jquery.com/Plugins/Validation ),它允许您在加载每组新字段时将验证规则/消息设置为对象,以删除冗余规则并在字段更改时添加新规则。问题是规则/消息对象都必须写入js中以供需要时使用,并且文件很长,看起来效率很低。这是我的伪代码:

<form>
    <input1 (always on page) />
    <input2 (always on page) />
    <ul id="nav-tabs">
        <li id="tab1"></li>
        <li id="tab2"></li>
        <li id="tab3"></li>
    </ul>
    <div id="dynamic-content">
        <!-- different form fields load in here from separate html files, all requiring different rules in addition to the 2 fields always on the page -->
    </div>
    <input type="submit" />
</form>

我认为可能有一些解决方案可以在设置时加载每个 HTML block 的规则?有人做过这样的事吗?

感谢任何可以提供帮助的人。

最佳答案

使用内置的rules()方法添加规则。 See documentation.

注意:您必须在调用.validate()之后调用此方法。

jsFiddle DEMO

$("#form").validate({
    // my other options
});

// the following method must come AFTER .validate()

$(".myClass").each(function() {
    $(this).rules('add', {
        required: true,
        minlength: 5
    });
});

以下内容与自定义消息相结合:。请注意,格式与在 .validate()... 中添加规则作为选项时略有不同。

$(".myClass").each(function() {
    $(this).rules('add', {
        required: true,
        minlength: 5,
        messages: {
            required: "Required input",
            minlength: jQuery.format("At least {0} characters are necessary")
        }
    });
});

当您向表单动态添加字段时,此方法也非常有用。

var myRule = {
    required: true,
    minlength: 5,
    messages: {
        required: "Required input",
        minlength: jQuery.format("At least {0} characters are necessary")
    }
}

$("#myform").append('<input type="text" name="four" /><br />');
$("[name='four']").rules('add', myRule);

jsFiddle 演示:

http://jsfiddle.net/kSFKE/10/

如果您要动态销毁不需要的字段输入,则无需使用remove 来删除规则。

关于jquery - 为 jQuery 验证插件动态设置规则/消息对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116750/

相关文章:

javascript - 如何使用 Jquery 设置数据属性?

javascript - 如何在我的代码中使用 jquery 验证和 jquery 自动完成

javascript - Jquery验证: How to validate that all or none of a group of textboxes have values?

jquery - 如何使用 jquery-validate 验证 Fuelux 向导中的每个步骤

Jquery 验证 - 使用submitHandler 剥离表单数据

javascript - Jquery/JavaScript - 获取事件 URL,拆分

jquery - Tipsy jQuery Tooltip Plugin - 是否可以使用多种样式?

使用 Jquery 自动完成的 Php Mysql 搜索

javascript - Phonegap 无法检测到 index.js

如果我将输入 type=submit 更改为 type=button,jquery 验证插件将无法工作