jquery – выберите все флажки с именем массива js

Я хочу использовать функцию «проверить все» JQuery в форме, подобной этой: http://jetlogs.org/jquery/jquery_select_all.html

Моя проблема заключается в том, что я генерирую свою форму из сценария php, и я не знаю, сколько у меня будет флажков заранее. Я использую соглашение об именах «array», чтобы иметь возможность получить все выбранные флажки в моих данных $ _POST … так что мои флажки выглядят так:

<input type="checkbox" name="items[]" value="<?php echo $id ?>"> 

но это заявление JQuery не работает:

 $("input[@name=items[]]").each(function() { this.checked = checked_status; }); 

вероятно, потому, что «[]» в конце моих «элементов» испортил объявление JQuery … Я попытался написать @ name = items [] следующим образом: «@ name = items []» и поставить некоторые анти -slash перед [и], поэтому они не считаются специальными символами, но они не работают …

Если кто-то знает решение и хочет поделиться им, было бы здорово !! 🙂

Выбери внутренние скобки с \\ (без пробела) – это должно устранить проблему.

Этот селектор работает для меня:

 $('input[name=items\\[\\]]') 

Попробуйте использовать

 $('input[name="items[]"]') 

Нет необходимости использовать @ и использовать " . Обратите внимание, что внешние кавычки селектора – ' . В противном случае вы можете вызвать ошибку синтаксического анализа.

Прежде всего, ваш атрибут name должен использоваться для установки +1 элементов с тем же именем. Это практически то же самое, что и атрибут id, и должен быть уникальным для каждого элемента, за исключением ссылок, но это не относится к вам.

Попробуйте использовать атрибут class, это сделано для вещей, которые вы хотите сделать!

другое дело в том, что в вашем коде вы можете установить флажки только «проверены», но никогда не снимать галочку, этот код установит флажки в true или false, в соответствии с тем, что он получает как атрибут от элемента clicked.

вы можете сделать что-то вроде этого:

установите флажок check all с идентификатором

  <input type="checkbox" id="checkAll"> 

Затем установите для всех флажков, которые должны быть проверены / сняты флажки класса

 <input type="checkbox" class="checked"> 

И вы можете сделать что-то подобное в jQuery

 $("#checkAll").click( function(){ var checkedValue = $(this).attr("checked"); $("input.checked").attr("checked", checkedValue); }); 

это изменит все флажки с проверенным классом на тот же проверенный атрибут, что и с идентификатором checkAll

 $("input[name='smsid[]']") 

Этот код отлично подходит для меня …