我正在努力解决这个问题。现在正在查看JQuery验证的示例和工具超过3个小时。
我想要做的就是要求选中一个复选框和一个单选按钮,但我不关心需要哪一个。
<form id="form1" action="/controller/action" method="post">
<div class="checkbox"><input type="checkbox" name="box1" class="cBox" /><label for="box1" class="label">Box1</label></div>
<div class="checkbox"><input type="checkbox" name="Box2" class="cBox" /><label for="Box2" class="label">Box2</label></div>
<div class="checkbox"><input type="checkbox" name="Box3" class="cBox" /><label for="Box3" class="label">Box3</label></div>
<div class="radio"><input type="radio" name="print" value="Radio1" class="rad" /><label class="label">Radio1</label></div>
<div class="radio"><input type="radio" name="print" value="Radio2" class="rad" /><label class="label">Radio2</label></div>
<div class="radio"><input type="radio" name="print" value="Radio3" class="rad" /><label class="label">Radio3</label></div>
<input type="submit" value="Submit" />
</form>
非常感谢任何帮助。
答案 0 :(得分:21)
要执行此操作,您必须使用:checked
选择器。虽然JP的答案很好,但我可能会这样做:
$('#form1').submit(function() {
if ($('input:checkbox', this).is(':checked') &&
$('input:radio', this).is(':checked')) {
// everything's fine...
} else {
alert('Please select something!');
return false;
}
});
几个笔记:
is
函数会更好,它会返回选择器的布尔值。:radio
和:checkbox
作为选择表单中所有无线电和复选框的快捷方式。但是,according to the jQuery manual,使用这些选择器而不在其前面指定input
是不好的做法,因为它们评估为*:checkbox
和*:radio
,否则这些选择器非常慢。 / LI>
this
作为第二个参数,我们specifying a context进行搜索,因此只搜索当前表单中的复选框和无线电输入。没有它,如果页面中恰好有另一种形式,我们可能会得到误报。答案 1 :(得分:1)
$('#form1').submit(function(){
if ($(':checkbox:checked', this)[0] && $(':radio:checked', this)[0]) {
// everything's fine...
} else {
alert('Please select something!');
return false;
}
});
答案 2 :(得分:-1)
在我的情况下,这对我有用,我想要求用户选中复选框以提交表单。
$(document).ready(function(){
$('#yourinput').required = true;
});