Длина отмеченного флажка неверна

У меня есть 4 флажка при щелчке флажка по имени chekcAll я хочу проверить другие 3 флажок.

Я могу это сделать, но хочу знать, сколько флажков выбрано на этой странице.

Я использую $ ("input: checked"). Length

чтобы найти кол-во выбранного флажка.

Но это не работает.

$("#checkAll").click(function () {
 if($("#checkAll").is(":checked")){
 $('input:checkbox').not(this).prop('checked', this.checked);
 $('input:checkbox').not(this).attr('checked',this.checked);
 alert($("input :checked").length);
 }
 else{
 $("input :checkbox").prop("checked",false);
 $("input :checkbox").removeAttr('checked');
 }
});

http://jsfiddle.net/7mx4k/

5 ответов

Удалите space из $("input :checked").length like,

И попробуйте это,

$("#checkAll").click(function () {
 $('input:checkbox').prop('checked', this.checked);
 alert($("input:checked").length); 
});

демонстрация


попробуйте что-то подобное, FIDDLE

Их shoul не будет промежутком между

alert($("input:checked").length);

Измените свой код, чтобы получить правильную длину, применяя класс, FIDDLE

Item 1
 Item 2
 Item3

код javascript

$("#checkAll").click(function () {
 if($("#checkAll").is(":checked")){
 $('input:checkbox').not(this).prop('checked', this.checked);
 $('input:checkbox').not(this).attr('checked',this.checked);
 alert($(".ckh_bx:checked").length);
 }
 else{
 $("input :checkbox").prop("checked",false);
 $("input :checkbox").removeAttr('checked');
 }
 });


У вас есть пробел в вашем селекторе предупреждений, который подразумевает поиск потомков ввода

Должно быть

$("input:checked")

Аналогичная проблема в селекторах else


должен быть

alert($("input:checkbox:checked").not(this).length);

например:

var $checks = $('input:checkbox').not('#checkAll');
$("#checkAll").click(function () {
 $checks.prop('checked', this.checked);
 alert($checks.filter(':checked').length);
});

Демо: скрипка


http://api.jquery.com/checked-selector/

В этом примере у вас нет пробелов между вашими селекторами. Эта ссылка вам поможет.

licensed under cc by-sa 3.0 with attribution.