将六个输入字段作为一个组进行jQuery验证
我正在尝试实现6个表单字段,允许用户输入发送到电子邮件的6位代码 所有这6个字段都是必填字段,如果其中任何一个字段未填写,则错误消息将显示在右侧 在我的代码中,我有以下问题 1) 当它们全部未填充时,将显示错误消息。这是正确的 2) 只要其中一个已填充,错误消息就会消失 2a)只有当我点击“提交”按钮时,错误信息才会短暂出现。一旦我释放单击,错误消息就消失了。我不确定这是否是因为错误消息被覆盖 是否可以编写一种方法来检查,只要其中一个字段未填写,就会显示错误消息将六个输入字段作为一个组进行jQuery验证,jquery,jquery-validate,Jquery,Jquery Validate,我正在尝试实现6个表单字段,允许用户输入发送到电子邮件的6位代码 所有这6个字段都是必填字段,如果其中任何一个字段未填写,则错误消息将显示在右侧 在我的代码中,我有以下问题 1) 当它们全部未填充时,将显示错误消息。这是正确的 2) 只要其中一个已填充,错误消息就会消失 2a)只有当我点击“提交”按钮时,错误信息才会短暂出现。一旦我释放单击,错误消息就消失了。我不确定这是否是因为错误消息被覆盖 是否可以编写一种方法来检查,只要其中一个字段未填写,就会显示错误消息 $(document).read
$(document).ready(function(){
$("#verification_form").validate({
groups: {
inputGroup: "num1 num2 num3 num4 num5 num6"
},
rules: {
Name: {
required: true,
maxlength:50
},
Email: {
required: true,
email:true,
maxlength:50
},
num1: {
required:true
},
num2: {
required:true
},
num3: {
required:true
},
num4: {
//required: "#divVerifyEmail:visible",
required:true
},
num5: {
required:true
},
num6: {
required:true
}
},
highlight: function(element, errorClass) {
$(element).closest('.form-group').removeClass('has-success').addClass('has-error');
},
errorPlacement: function (error, element) {
$(element).closest('.form-group').find('.error-msg').text(error.text());
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error').addClass('has-success')
},
submitHandler: function (form) { // for demo
alert('valid form submitted'); // for demo
return false; // for demo
}
})
groups
选项只是将所有消息合并为一个消息。如果所有六个字段都有自己的必选
规则,则当一个字段满足时,消息将被清除,然后当另一个字段不满足时,消息将返回,依此类推,在字段周围移动时切换开/关/等
此选项不适用于包含不同消息的多个字段。它旨在与复杂的规则一起使用,例如require\u from\u group
,这些规则总是同时在多个字段上放置相同的消息。groups
选项按预期的方式工作,但它不是您想要的
您可能想尝试使用require\u from\u 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"
}
});
});
演示:我不确定到底是什么问题,你能创建一个提琴吗?向我们展示相关的HTML标记可能是个好主意。谢谢!这就是我要找的!