我正在尝试实现6个表单字段,允许用户键入发送到其电子邮件的6位数代码。
所有这6个字段都是必需的,如果未填写其中任何一个字段,则会在右侧显示错误消息。
在我的代码中,我遇到以下问题
1)如果未填写,则会显示错误消息。这是正确的。
2)只要其中一个被填满,错误信息就会消失。
2a)只有当我点击"提交"按钮然后短暂出现错误消息。一旦我发布了点击,错误消息就消失了。我不确定是否是因为错误消息被覆盖了。
是否可以编写一个方法来检查只要其中一个字段未填充,然后显示错误消息?
λ> ./a.out
Enter number of rows in A: 2
Enter number of columns in A: 3
Enter number columns in B: 2
2 3 4
1 3 5
3 4
5 6
7 8
Matrix A:
2 3 4
1 3 5
Matrix B:
3 4
5 6
7 8
Matrix product:
49 58
53 62
答案 0 :(得分:1)
groups
选项仅将所有消息合并为一个。如果所有六个字段都有自己的required
规则,那么当一个字段满足时,消息将被清除,然后当另一个字段不满意时,消息将返回,依此类推,切换打开/关闭/等等在田野里移动。
此选项不适用于具有不同消息的多个字段。它旨在用于复杂的规则,如require_from_group
,它们总是会在同一时间将相同的消息放在几个字段上。 groups
选项按照预期的方式工作,但这不是你想要的。
您可能希望尝试使用require_from_group
规则。
$("#verification_form").validate({
groups: {
inputGroup: "num1 num2 num3 num4 num5 num6"
},
rules: {
....
num1: {
require_from_group: [6, $("[name^=num]")]
},
num2: {
require_from_group: [6, $("[name^=num]")]
},
num3: {
require_from_group: [6, $("[name^=num]")]
},
num4: {
require_from_group: [6, $("[name^=num]")]
},
num5: {
require_from_group: [6, $("[name^=num]")]
},
num6: {
require_from_group: [6, $("[name^=num]")]
}
},
...
或者将此规则同时分配给所有六个字段的简短方法......
$("[name^=num]").each(function() {
$(this).rules('add',{
require_from_group: [6, $("[name^=num]")],
messages: {
require_from_group: "These 6 fields are required"
}
});
});
DEMO :jsfiddle.net/xbwzt7p9/