Javascript 如果未选中复选框,请选中第一个复选框

Javascript 如果未选中复选框,请选中第一个复选框,javascript,html,Javascript,Html,我有这个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"&

我有这个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>
全部
芝加哥
得克萨斯州
而且,我有,这是正确的工作。我真正想做的是,当没有选中任何复选框时,我希望自动选中all复选框

尝试以下操作:

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

你真正需要的只是一行

$('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);
});

谢谢Raminson,这很好,但在我的情况下,我有很多复选框,例如,一个用于城市的复选框组,一个用于操作系统的复选框组等。请您修改代码,该代码只能用于特定类别或组的复选框。我真的很抱歉Raminson,因为我再次打扰您,但我的字段集还有一个名称为“city\u pref\u alt[]”的城市组。这将改变此函数的行为。
$('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);
});