2012-03-19 177 views
3

我有以下代碼:輸入複選框始終返回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?謝謝。

回答

1

它應該是$(this).is(':checked')

1

您需要使用:checked選擇不checked

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

因爲您正在檢查input元素是否爲checked元素,當然這不是元素,因爲它是input元素(並且沒有checked元素)。使用:checked pseudo-selector

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

或者這樣:

$(this).attr("checked")