Ответ 1
Сбросьте внутренние скобки с помощью \\
(без пробела) - это должно устранить проблему.
Этот селектор работает для меня:
$('input[name=items\\[\\]]')
Я хочу использовать функцию "проверить все" в 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 []" и поместите некоторые анти-косые черты перед [и], чтобы они не считались специальными символами, но они не работали...
Если кто-то знает решение и хочет поделиться им, это будет здорово!:)
Сбросьте внутренние скобки с помощью \\
(без пробела) - это должно устранить проблему.
Этот селектор работает для меня:
$('input[name=items\\[\\]]')
Попробуйте использовать
$('input[name="items[]"]')
Нет необходимости в @
и используйте "
. Обратите внимание, что внешние кавычки выбора '
. В противном случае вы можете вызвать ошибку синтаксического анализа.
Прежде всего, ваш атрибут 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
$("input[name='smsid[]']")
Этот код отлично работает для меня...