提交前JQuery需要Checkbox和单选按钮

时间:2009-05-11 17:36:22

标签: jquery forms validation

我正在努力解决这个问题。现在正在查看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>

非常感谢任何帮助。

3 个答案:

答案 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;
});