输入复选框总是返回false

Input checkbox always returns false

本文关键字:返回 false 复选框 输入      更新时间:2023-09-26

我有以下代码:

HTML

<div id='foo'>
    <input type='checkbox' value='english' name='bar[english]' />
    <input type='checkbox' value='spanish' name='bar[spanish]' />
    <button type='button' class='button'>Me!</button>
</div>​

JavaScript(jQuery)

$('.button').click(function() {
    status = '';
    $('#foo input[name*="bar"]').each(function() {
        status += $(this).val() + ': ' + $(this).is('checked') + ".'n";
    });
    alert(status);
});

http://jsfiddle.net/pCmXJ/

你知道为什么两个复选框总是返回false吗?谢谢

可能是因为您想要:checked选择器:

$(this).is(":checked") // <-- Note the colon (:) before "checked"

示例:http://jsfiddle.net/nht6w/

或者这个:

$(this).attr("checked")

它应该是$(this).is(':checked')

您需要使用:checked选择器而不是checked

status += $(this).val() + ': ' + $(this).is(':checked') + ".'n";

因为您正在检查input元素是否是checked元素,当然不是,因为它是input元素(并且没有checked元素)。使用:checked伪选择器:

$(this).is(':checked')