jqueryvalidate-只有选中单选按钮时,才会选中一组复选框中的至少一个复选框
我使用jQueryValidatePlugin来确保三个复选框中至少有一个复选框被选中,并且运行良好。但我只想在选中单选按钮“Sim”时验证这些复选框。我不知道怎么做 演示: Html表单:jqueryvalidate-只有选中单选按钮时,才会选中一组复选框中的至少一个复选框,jquery,checkbox,jquery-validate,Jquery,Checkbox,Jquery Validate,我使用jQueryValidatePlugin来确保三个复选框中至少有一个复选框被选中,并且运行良好。但我只想在选中单选按钮“Sim”时验证这些复选框。我不知道怎么做 演示: Html表单: <form name="itemForm" id="itemForm" method="post"> <p> <input name="resp01" type="radio" value="sim" id="resp01-sim" class="resp" /> &
<form name="itemForm" id="itemForm" method="post">
<p>
<input name="resp01" type="radio" value="sim" id="resp01-sim" class="resp" /> <label for="resp01-sim">Sim</label>
<input name="resp01" type="radio" value="não" id="resp01-nao" class="resp" /> <label for="resp01-nao">Não</label>
</p>
<fieldset style="width:200px"><legend>Outros catalogos</legend>
<input id="opt01" name="opt01" type="checkbox" value="true" class="require-one" />
<label for="opt01">opt01</label>
<input name="opt01" type="hidden" value="false" /><br />
<input id="opt02" name="opt02" type="checkbox" value="true" class="require-one" />
<label for="opt02">opt02</label>
<input name="river2" type="hidden" value="false" /><br />
<input id="opt03" name="opt03" type="checkbox" value="true" class="require-one" />
<label for="opt03">opt03</label>
<input name="opt03" type="hidden" value="false" /><br />
</fieldset>
<div class="error" id="form_error"></div>
<br />
<input type="submit" />
$.validator.addMethod('require-one', function(value) {
return $('.require-one:checked').size() > 0;
}, 'Selecione pelo menos uma das opções.');
$(document).ready(function(){
var checkboxes = $('.require-one');
var checkbox_names = $.map(checkboxes, function(e, i) {
return $(e).attr("name")
}).join(" ");
$("#itemForm").validate({
groups: {
checks: checkbox_names
},
rules: {
resp01: 'required',
},
messages: {
resp01: { required: 'Selecione uma resposta!' },
},
errorPlacement: function(error, element) {
$('#form_error').append(error);
},
submitHandler: function(form) {
alert('Form Submited');
return false;
}
});
});
您只需要更改自定义方法的逻辑
$.validator.addMethod('require-one', function(value) {
if ($('#resp01-sim').is(':checked')) {
return $('.require-one:checked').size() > 0;
} else {
return true;
}
}, 'Selecione pelo menos uma das opções.');
演示:您可以尝试内置功能:
$( "#itemForm" ).validate({
rules: {
opt01: {
required: "#resp01-sim"
}
}
});
你自己绝对没有尝试过。@Sparky哦,天哪,当然!我在规则中错误的地方寻找答案。非常感谢你!如果我选中一个复选框并取消选中它,您的表单将被提交。@AdrianP.,只有在您选择了第二个
单选按钮的情况下才会提交。仅当选择了单选按钮时,才会验证复选框。请参阅此问题的标题:“仅当选中单选按钮时,才会选中一组复选框中的至少一个”True。我的错误。我没有完整地阅读这个问题。我只是想为类似的事情寻找一个解决方案。我不懂语言,但验证工作就像魅力谢谢!!我相信用户要求的是一组复选框中需要一个复选框的解决方案。