jQuery - установите все флажки с именем массива js

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

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


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

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

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

Если бы кто-то знает решение и готов совместно использовать, это было бы большим!!:)

23
задан Pierre 26 February 2010 в 10:34
поделиться

3 ответа

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

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

$('input[name=items\\[\\]]')
59
ответ дан 29 November 2019 в 00:47
поделиться

сериализация имеет отношение к преобразованию двоичного объекта в XML (или другое строковое) представление, так что он может быть сохранен в базе данных/файле или отправлен по сети в вызове веб-службы. Десериализация - это обратный процесс - преобразование XML/строки обратно в объект.

-121--2511255-

Ознакомьтесь с документацией MSDN для метода Debug.Assert . В частности, в разделе «Примечания» объясняется, как можно отключить пользовательский интерфейс:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="false" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

Поэтому я бы предложил, чтобы файл конфигурации приложения имел это значение по умолчанию, и ваш коллега переключает Assert на пользовательский интерфейс всякий раз, когда он считает это полезным.

-121--3677613-

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

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

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

14
ответ дан 29 November 2019 в 00:47
поделиться

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

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

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

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

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

 <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

4
ответ дан 29 November 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: