Выберите все входы данной формы в Jquery - PullRequest
0 голосов
/ 18 января 2010

У меня есть объект формы в jquery, и я хотел бы выбрать все входы этой формы.

Предположим, мой объект формы называется form .Если форма имеет идентификатор, я могу просто сделать

var id = form.attr('id');
var inputs = $('#' + id + ' input');

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

Другой возможный способ (который я не могу заставить работать) будет что-то вроде

var inputs = $('input').filter(function() {
    var parents = this.parents();
    return ($.inArray(form, parents) != -1);
});

но это тоже кажется сложным (и не работает, как указано).

Кстати, с точки зрения производительности, какой подход будет более удобным?

Ответы [ 2 ]

2 голосов
/ 18 января 2010

http://docs.jquery.com/Traversing/find

form.find('input')

должен сделать трюк, я думаю.На всякий случай, если вы пытаетесь заставить все поля ввода захватить их текущие значения и отправить их с помощью AJAX, вы можете просто использовать метод. serialize вашей формы:

data: form.serialize(),

Что касается вопроса о производительности, я полагаю, что ваш первый метод более эффективен, а второй будет повторять каждый ввод на странице.Начиная с jQuery 1.4, первый метод определенно более эффективен: запросы, основанные на идентификаторах объектов, изначально были значительно улучшены.

1 голос
/ 18 января 2010

Я не уверен, что вы пытаетесь сделать здесь ... если на странице есть несколько форм, то вам нужно иметь какое-то идентификаторы ... pernt и id, класс что-то. Если у вас есть только одна форма, тогда это просто, как $('form input').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...