У меня есть страница, где тип ввода всегда меняется, и мне нужно получить значения в зависимости от типа ввода. Так что, если тип является радио, мне нужно получить, который отмечен, и если это флажок, мне нужно сейчас, которые проверены, и если это выпадающий список, мне нужно знать, который выбран, и я, если это текст / текстовое поле Мне нужно знать значения.
Есть идеи, как это сделать?
Ответы:
РЕДАКТИРОВАТЬ 1 февраля 2013 г. Из-за популярности этого ответа и изменений в jQuery в версии 1.9 (и 2.0), касающихся свойств и атрибутов, я добавил несколько заметок и скрипку, чтобы увидеть, как это работает при доступе к свойствам / атрибутам при вводе, кнопки и некоторые выбирает. Скрипка здесь: http://jsfiddle.net/pVBU8/1/
получить все входы:
получить все типы входов:
получить значения:
ПРИМЕЧАНИЕ: .val () НЕ совпадает с: проверено для тех типов, где это подходит. использовать:
РЕДАКТИРОВАТЬ 1 февраля 2013 г. - re: jQuery 1.9 использует prop (), а не attr (), так как attr не будет возвращать правильные значения для свойств, которые изменились.
или просто
чтобы получить значение чека - каким бы он ни был в настоящее время. или просто используйте «: флажок», если вы хотите только те, которые проверены.
РЕДАКТИРОВАТЬ: Вот еще один способ получить тип:
РЕДАКТИРОВАТЬ 2: Обратите внимание, что форма:
отдается над
которые оба равняются:
но «вход» желателен, поэтому он получает только входы и не использует универсальный «*», когда используется форма,
$(':radio')
равная$('*:radio');
РЕДАКТИРОВАТЬ 19 августа 2015 г .: предпочтение
$('input[type=radio]');
следует использовать, поскольку оно позволяет современным браузерам оптимизировать поиск радиовхода.РЕДАКТИРОВАТЬ 1 февраля 2013 за комментарий re: выбрать элементы @dariomac
вернет либо «select-one», либо «select-множественный» в зависимости от атрибута «множественный» и
возвращает то же самое для первого выбора, если он существует. и
вернет тип, если он существует, или «привет», если его нет.
возвращает свойство первого в DOM, если оно существует, или «неопределенное», если оно не существует.
возвращает тип первого, если он существует, или ошибку, если ее не существует.
источник
allInputs.attr('type');
получит только первый тип элементов ввода т.е.allInputs[0].attr('type');
если в коллекции более одного элемента. То же самое касается того, чтоallInputs.val();
если вы хотите что-то сделать с типом или значением каждого элемента, вам нужно сделать что-то вродеallInputs.each(function(){ var type = $(this).attr('type'); var val = $(this).val() });
Вы можете сделать следующее:
источник
Если вы говорите, что хотите получить все входные данные внутри формы, которые имеют значение, не беспокоясь о типе ввода, попробуйте это:
Пример: http://jsfiddle.net/nfLfa/
Теперь у вас должен быть набор элементов ввода, которые имеют некоторое значение.
Вы можете поместить значения в массив:
Или вы можете их сериализовать:
источник
источник
источник
Лучшее место, чтобы начать искать http://api.jquery.com/category/selectors/
Это даст вам хороший набор примеров.
В конечном итоге выбор элементов в DOM осуществляется с помощью селекторов CSS, поэтому, если вы думаете о получении элемента по идентификатору, вы захотите использовать $ ('# elementId'), если вы хотите, чтобы все входные теги использовали $ ('input') и, наконец, часть, которая, я думаю, вам понадобится, если вы хотите, чтобы все входные теги с типом флажка использовали $ ('input, [type = checkbox])
Примечание: вы найдете большинство нужных значений в атрибутах, поэтому селектор css для атрибутов: [attributeName = value]
Просто потому, что вы запросили выпадающий список в виде списка, попробуйте следующее:
Код был из памяти, поэтому, пожалуйста, отвечайте за небольшие ошибки
источник
Комментарии:
Я предполагаю, что существует ровно один элемент формы, который может быть либо текстовой областью, полем ввода, формой выбора, набором радиокнопок или одним флажком (вам придется обновить мой код, если вам нужно больше флажков).
Рассматриваемый элемент находится внутри элемента с идентификатором
container
(для устранения неоднозначностей с другими элементами на странице).Затем код вернет значение первого соответствующего элемента, который он найдет. Поскольку я использую
:checked
и так далее, это всегда должно быть именно то значение, что вы ищете.источник
Казалось бы, функциональность attr становится все более устаревшей
источник
В моем приложении я получил два разных элемента с одинаковым идентификатором (плохо). Один элемент был div, а другой входом. Я пытался суммировать свои данные и потратил некоторое время на то, чтобы реализовать дублированные идентификаторы. Поместив тип элемента, который я хотел, перед #, я смог получить значение элемента input и отбросить div:
Я надеюсь, что это помогает.
источник
источник
источник