jquery验证插件和复选框的帮助
我有一个复选框组,需要对其进行唯一命名,以便在数据库中单独存储值。 但是,使用jquery验证插件,我无法验证名称不同的组jquery验证插件和复选框的帮助,jquery,jquery-validate,Jquery,Jquery Validate,我有一个复选框组,需要对其进行唯一命名,以便在数据库中单独存储值。 但是,使用jquery验证插件,我无法验证名称不同的组 <label>Would you like to compete?</label> <input type="checkbox" name="compete1" value="2" class="competecheckbox" > <label for="compete_no">No</lab
<label>Would you like to compete?</label>
<input type="checkbox" name="compete1" value="2" class="competecheckbox" >
<label for="compete_no">No</label>
<input type="checkbox" name="compete2" value="1" class="competecheckbox">
<label for="compete_yes">Yes</label>
<div id="competeyes">
<label class="competeyestxt" hidden=true>Which Location?</label>
<textarea rows="4" cols="40" maxlength="2000" name="competeyestextarea" class="competeyestxt" hidden="true">
</textarea>
</div>
这种方式可以工作,但它显示了两条错误消息。
每个匹配类“competecheckbox”对应一个
问题是,即使用户选择compete1,compete2仍会保留验证错误消息
当用户选择至少一个复选框时,如何清除这两条消息
谢谢我会为此使用
组
选项。此选项允许您对所需的输入进行分组:
$("#form").validate({
groups: {
competecheckbox: "compete1 compete2"
},
errorPlacement: function ($error, $element) {
if ($element.attr("name") === "compete1" || $element.attr("name") === "compete2") {
$error.insertAfter("label[for='compete_yes']");
} else {
$error.insertAfter($element);
}
}
});
示例:
注意事项:
errorPlacement
用于确定消息是否为分组字段之一。如果是,则在“是”复选框后插入错误(这很容易更改)。否则,它将在元素后采用其默认位置
groups
选项用于指定名为competecheckbox
的组,其中包括compete1
和compete2
。这两个字段一起进行验证
我的结局是这样的:
<label>Would you like to compete?</label>
<input type="checkbox" name="compete[]" value="2" class="competecheckbox" >
<label for="compete_no">No</label>
<input type="checkbox" name="compete[]" value="1" class="competecheckbox">
<label for="compete_yes">Yes</label>
<div id="competeyes">
<label class="competeyestxt" hidden=true>Which Location?</label>
<textarea rows="4" cols="40" maxlength="2000" name="competeyestextarea" class="competeyestxt" hidden="true">
</textarea>
</div>
When the form is submitted you get values in an array as compete[1], compete[2] etc.
I didn't know that you could do an empty array for form variable names.
Every day I find out how ignorant I am :)
我使用了一些类似的东西,它也在工作,但至少在我的情况下,我不能在字段名称中使用[]。如何在不使用阵列的情况下实现这一点?谢谢:)
<label>Would you like to compete?</label>
<input type="checkbox" name="compete[]" value="2" class="competecheckbox" >
<label for="compete_no">No</label>
<input type="checkbox" name="compete[]" value="1" class="competecheckbox">
<label for="compete_yes">Yes</label>
<div id="competeyes">
<label class="competeyestxt" hidden=true>Which Location?</label>
<textarea rows="4" cols="40" maxlength="2000" name="competeyestextarea" class="competeyestxt" hidden="true">
</textarea>
</div>
When the form is submitted you get values in an array as compete[1], compete[2] etc.
I didn't know that you could do an empty array for form variable names.
Every day I find out how ignorant I am :)
$('#survey').validate( {
rules: {
"compete[]": {
required: true,
minlength: 1
}
});
The quotes around "compete[]" are required as explained here: