输入复选框始终返回false

时间:2012-03-19 18:14:31

标签: javascript jquery forms

我有以下代码:

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?感谢。

5 个答案:

答案 0 :(得分:8)

可能是因为你想要:checked selector

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

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

答案 1 :(得分:2)

或者这个:

$(this).attr("checked")

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

因为您正在检查input元素是否为checked元素,当然不是因为它是input元素(并且没有checked个元素)。使用:checked pseudo-selector

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