5

我正在尝试找到获取选中复选框的最简单方法。

这是我的脚本:

$(document).ready(function() {
    $("input[name='chkTextEffects']").change(function() {
        if ($("#cbSolid").is(':checked') == true) {
            alert('Solid');
        } else if ($("#cbOutline").is(':checked') == true) {
           alert('Outline');
        } else if ($("#cbSolid", "#cbOutline").is(':checked') == true) {
            alert('SolidOutline');
        } else if ($("#cbSolid", "#cbOutline").is(':checked') == false) {
            alert('No Effects'); 
        }
    });
});​

HTML:

   <input type="checkbox" name="chkTextEffects" id="cbSolid" value="Solid" />Solid
   <input type="checkbox" name="chkTextEffects" id="cbOutline" value="Outline" />Outline
   <input id="TextEffectsSelection" type="hidden" />

我不确定这条线if ($("#cbSolid", "#cbOutline").is(':checked') == true)或者我应该使用bind它来实现它。

4

4 回答 4

9

这是我创建的一个示例,它展示了我认为您正在尝试实现的目标:

$('#getCheckboxesButton').live('click', function(event) {
    var checkboxValues = [];
    $('input[type="checkbox"]:checked').each(function(index, elem) {
        checkboxValues.push($(elem).val());
    });
    alert(checkboxValues.join(', '));
});

http://jsfiddle.net/qdvng/

让我知道这是否有帮助。它基本上使用 ':checked' jQuery 选择器来检索已选中的复选框,然后遍历它们的值并将其打印出来。

于 2012-04-23T17:35:09.483 回答
4

您可以像这样使用:checked选择器来获取具有指定名称的所有选中复选框:

$("input[name='chkTextEffects']:checked")
于 2012-04-23T17:31:40.600 回答
1

查询

$('input:checkbox:(:checked)').each( function() {
// your code here
})

http://api.jquery.com/checkbox-selector/

http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/

于 2012-04-23T17:37:02.867 回答
0

为什么不这样做:

$("#checkboxId").attr("checked") == "checked";
于 2012-04-23T17:31:39.570 回答