aar*_*onp 9 javascript validation jquery jquery-plugins jquery-validate
在我们的网站上,我们使用来自ESP的嵌入式注册表单,该表单使用jQuery validate插件.我们正在自定义表单,添加几个自定义字段(名字,姓氏),我们希望它们被分组,因此两个字段只有一个错误消息.
由于表单的验证器已经初始化,我需要动态添加一些内容.该插件提供了动态添加到验证规则中的规则("添加",规则)方法,尽管我们只是使用类名来执行此操作.但是,在初始化验证器之后,没有明确的方法来设置groups选项.
我已经尝试了一些不同的东西来实现这一点,但没有一个能够工作:
var settings = $("#mc-embedded-subscribe-form").validate().settings;
$("#mc-embedded-subscribe-form").validate($.extend(settings, {
groups: {
username: "FNAME LNAME"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "FNAME" || element.attr("name") == "LNAME") {
error.insertAfter("#username_group");
} else {
error.insertAfter(element);
}
}
}));
Run Code Online (Sandbox Code Playgroud)
errorPlacement函数将添加到验证程序,但不会添加到组.
我也尝试过显式设置groups选项,但这也没有效果.
$("#mc-embedded-subscribe-form").validate().settings.groups = { username: "FNAME LNAME" };
$("#mc-embedded-subscribe-form").validate().groups = { username: "FNAME LNAME" };
Run Code Online (Sandbox Code Playgroud)
我完全不知道如何实现这一目标.
ron*_*man 10
我最近遇到了同样的问题,并找到了不同的解决方案.
我们有一个表,当用户添加(或删除)行时,它会动态增长.每个新行包含几个元素,我们希望每个行的输入元素都在一个验证组中 - 每行一个 - 因为我们只需要每行一个错误标签.因为行是动态添加的 - 在我们调用$('#the-form')之后.validate () -我们需要一种方法来在每次用户添加行时添加新组.
我们通过直接修改其groups成员来攻击验证器对象:
// on document ready:
validator = $('#the-form').validate({
groups: ...,
rules: ...,
messages: ...,
etc.
});
...
// later, when we need to add a new validation group:
validator.groups['first_name_row_5'] = 'full_name';
validator.groups['last_name_row_5'] = 'full_name';
Run Code Online (Sandbox Code Playgroud)
最后两行相当于
groups: {full_name: 'first_name_row5 last_name_row_5'}
Run Code Online (Sandbox Code Playgroud)
在验证器选项中,但可以在初始调用validate()之后添加.
这是对jquery.validate内部的攻击,但是它有效(使用jquery validate v1.9.0).
最后,直接回答OP的问题:而不是:
$("#mc-embedded-subscribe-form").validate().groups = { username: "FNAME LNAME" };
Run Code Online (Sandbox Code Playgroud)
试试这个:
var validator = $("#mc-embedded-subscribe-form").validate();
validator.groups['FNAME'] = 'username';
validator.groups['LNAME'] = 'username';
Run Code Online (Sandbox Code Playgroud)
我也在寻找一种方法来实现这一点,并在jQuery帮助论坛中找到了一个解决方案:http://forum.jquery.com/topic/jquery-validate-defining-groups-dynamically
| 归档时间: |
|
| 查看次数: |
7724 次 |
| 最近记录: |