2016-04-19 39 views
2

我想弄清楚如何觸發鏈接按鈕來觸發並更改所有複選框以單擊時進行檢查。當我點擊按鈕時,它會彈出警告消息,但不會觸發複選框。我試過一些在這個網站上列出的答案,但它不起作用。我用jsfiddle重新創建了這個問題。如何觸發檢查所有複選框?

HTML:

<h3><a href="javascript:void(0);" id="checkAll">Check</a> All</h3> 
<hr/> 
<input class="categories" type="checkbox" name="filter" value="Math" checked>Math<br/> 
<input class="categories" type="checkbox" name="filter" value="Science" checked>Science<br/> 
<input class="categories" type="checkbox" name="filter" value="Reading" checked>Reading 

JS:

$('#checkAll').click(function() 
{ 
    alert("checkAll was clicked!"); 
    console.log("Checkboxes has been refilled!"); 
    $(':checkbox.categories').prop('checked', $(this).checked); // re-check all checkboxes 
    //$("input:checkbox").prop('checked', $(this).prop("checked")); 
}); 

回答

6

的問題是,因爲this將指a元素,包含該元素的jQuery對象沒有checked財產。取而代之的是,只需將它設置爲true

$('#checkAll').click(function(e) { 
    e.preventDefault(); 
    $(':checkbox.categories').prop('checked', true); 
}); 

Updated fiddle

+0

非常感謝你的幫助! :) – TheAmazingKnight