2012-07-23 148 views
1

我有這樣的HTML代碼選中第一個複選框,如果沒有複選框被選中

<input type="checkbox" name="city_pref[]" id="city_all" value="0" checked /><label for="city_all">All</label> 
<input type="checkbox" name="city_pref[]" id="city_pref_1" value="Chicago" /><label for="city_pref_1">Chicago</label> 
<input type="checkbox" name="city_pref[]" id="city_pref_2" value="Texas" /><label for="city_pref_2">Texas</label> 

而且,我有placed my code in a fiddle,這是正常工作。我真正想要做的是,當沒有選中任何複選框時,我希望全部複選框自動選中。

回答

3

嘗試以下操作:

$('input[type=checkbox]').change(function(){ 
    if ($('input[type=checkbox]:checked').length == 0) { 
     $('#city_all').prop('checked', true) 
    } 
}) 

DEMO

+0

感謝Raminson,這是件好事,但對我來說我有很多的複選框,爲城市例如,一個複選框組,一個是操作系統等,能否請您修改代碼哪些可以只爲特定類或複選框組 – Thompson 2012-07-23 07:41:12

+0

@MohanSinfh歡迎您,試試這個http://jsfiddle.net/bGwrS/16/ – undefined 2012-07-23 07:46:51

+0

我真的很抱歉Raminson,因爲我再次打擾你,但我的字段集一個名稱爲** name =「city_pref_alt []」**的城市組。這正在改變這個功能的行爲。 – Thompson 2012-07-23 08:44:37

0
$('input[type="checkbox"]').change(function(){ 
    if($('input[type="checkbox"]:checked').length == 0) 
     $('#city_all').attr('checked', 'checked'); 
}); 
0

您真正需要的是一個行?

$('input[type="checkbox"][name="city_pref[]"]').on('change', function(e){ 
    this.checked ? $(this).siblings('[name="city_pref[]"]').prop('checked', false) : $("#city_all").prop('checked', true); 
}); 

相關問題