2009-12-24 2 views
20

Как я могу вычислить количество флажков, которые пользователь проверил с помощью jquery?подсчитайте количество флажков html, установленных с помощью jquery

Что я хочу сделать, это ограничить количество проверок флажков в форме до 10, например, и когда пользователь превышает этот диапазон, отобразится предупреждающее сообщение.

+0

Возможный дубликат [Как получить количество всех отмеченных флажков на странице] (http: // stackove rflow.com/questions/872296/how-to-get-a-count-of-all-checked-checkboxes-on-a-page) – gcochard

ответ

60

Есть несколько способов сделать это:

Метод 1:

alert($('.checkbox_class_here:checked').size()); 

Способ 2:

alert($('input[name=checkbox_name]').attr('checked')); 

Метод: 3

alert($(":checkbox:checked").length); 
+1

Хороший ответ, но не следует использовать .checkbox_id_here вместо #checkbox_id_here? Если вы используете #checkbox_id_here, size() всегда будет 1, что будет бесполезно, потому что может быть только один уникальный идентификатор. Имеет смысл ссылаться на классы вместо этого, где могут быть несколько флажков –

+0

@Bug Magnet: Спасибо, что указали на опечатку, исправлено :) – Sarfraz

+1

'alert ($ ('. Pairing-cbk: checked'). Size()); 'не работает, но' alert ($ ('. pairing-cbk: checked'). size()); 'работал по причине, упомянутой выше, @James Wiseman – Amitabh

17

Это должно работать:

alert($("input:checkbox:checked").length); 
+0

$ ("input: checkbox: checked"). Length; с пробелом между флажком и: check не будет работать, это происходило со мной. –

+1

Это потому, что он будет искать descendends из 'input: checkbox', которые были' checked', а не для 'input: checkbox', которые сами проверяются. Пространство предусматривает отношения между предками и потомками. –

+0

Спасибо за вход. Я действительно этого не знал. –

2

Если ни один из вышеперечисленных методов работы, вы, вероятно, не импортировали Jquery еще. Чтобы импортировать jQuery, вставьте этот код в <head> вашего HTML.

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 

я на самом деле была такая же проблема при создании страницы заказа продукта, и я хотел, чтобы подсчитать количество продуктов в корзине на странице подтверждения заказа. Я сослался на этот пост и попробовал все методы. Тогда я узнал, что я не импортировал jQuery, поэтому $(':checkbox:checked') не работал.

0

вы должны использовать

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

или

alert($(".checkbox-class:checked").length); 

, если у вас есть несколько форм на одной странице

.size) (метод номер 1 в текущем общепринятом ответа) является устаревшим (поскольку jQuery 1.8

Смежные вопросы