输入复选框始终返回false

问题描述:

我有以下代码:输入复选框始终返回false

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 selector

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

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

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

您需要使用:checked选择不checked

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

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

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

或者这样:

$(this).attr("checked")