Подтвердить что ты не робот

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 []" и поместите некоторые анти-косые черты перед [и], чтобы они не считались специальными символами, но они не работали...

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

4b9b3361

Ответ 1

Сбросьте внутренние скобки с помощью \\ (без пробела) - это должно устранить проблему.

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

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

Ответ 2

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

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

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

Ответ 3

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

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

еще одна вещь заключается в том, что в вашем коде вы можете установить флажки только "checked", но никогда не снимите флажок, этот код установит ваши флажки в 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); });

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

Ответ 4

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

Этот код отлично работает для меня...