2014-01-23 101 views
0

我搜索可能會在這個線程上,沒有解決方案爲我工作,有沒有人知道這個小提琴怎麼了? http://jsfiddle.net/9dLGD/ 感謝選擇所有複選框不工作,包括jsfiddle

$(document).ready(function() { 
    $(function() { 
     $('#SelectAll').click(function() { 
      $('#Suppliers').find(':checkbox').attr('checked', this.checked); 
     }); 
    }); 
}); 
<input name="SelectAll" type="checkbox">Select All 
<input name="Suppliers" type="checkbox" value="1">Bob 
<input name="Suppliers" type="checkbox" value="2">Bill 
<input name="Suppliers" type="checkbox" value="3">Sandy 
<input name="Suppliers" type="checkbox" value="4">Sue 
<input name="Suppliers" type="checkbox" value="5">Fred 

回答

3

看起來像你想的:

$('input[name=SelectAll]').click(function() { 
    $('input[name=Suppliers]').prop('checked', this.checked); 
}); 

。在你的HTML沒有id與名SelectAllSuppliers。將這些ID添加到這兩個複選框,或使用上面的代碼按名稱選擇input元素。

Updated Fiddle

+1

他爲什麼要'將這些ID添加到他的複選框'?一個ID應該是唯一的。 – BenjaminPaul

+0

@BenjaminPaul也許你不明白我的意思。我建議他在頭兩個複選框中添加兩個'ids':'SelectAll'和'Suppliers' – Felix

+0

對於Select All選項有什麼用?一個身份證只會讓他選擇一個......在這種情況下,他可能只是把它變成另一個複選框。 – BenjaminPaul

2

有幾件事情:

- 你有兩個DOM準備功能

- 你不要有什麼用Suppliers的ID,你有name

- 使用.prop()改變屬性

$(document).ready(function() { 
    $("[name=SelectAll").change(function() { 
     $(":checkbox[name=Suppliers]").prop("checked", this.checked); 
    }); 
}); 

演示:http://jsfiddle.net/9dLGD/1/

0

嘗試以下操作:

$(document).ready(function() {    
     $('#SelectAll').click(function() { 
      $('input[name=Suppliers]:checkbox').attr('checked', true); 
     }); 
}); 
0

我喜歡費利克斯的答案,但我一直使用的去檢查的情況下複選框取消選中它們全部像這樣:

$(function(){ 
    $('input[name="SelectAll"]').click(function(){ 
    if ($(this).prop('checked')) $('input[name="Suppliers"]').prop('checked', true); 
    else $('input[name="Suppliers"]').prop('checked', false); 
    }); 
});