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

JQuery найти родительскую форму

У меня есть этот html

<ul>
    <li><form action="#" name="formName"></li>
    <li><input type="text" name="someName" /></li>
    <li><input type="text" name="someOtherName" /></li>
    <li><input type="submit" name="submitButton" value="send"></li>
    <li></form></li>
</ul>

Как я могу выбрать форму, в которой находится input[name="submitButton"]? (когда я нажимаю кнопку отправки, я хочу выбрать форму и добавить в нее некоторые поля)

4b9b3361

Ответ 1

Я бы предложил использовать closest, который выбирает ближайший соответствующий родительский элемент:

$('input[name="submitButton"]').closest("form");

Вместо фильтрации по имени я бы сделал следующее:

$('input[type=submit]').closest("form");

Ответ 2

Вы можете использовать ссылку на форму, которая существует на всех входах, это намного быстрее, чем .closest() (в 5-10 раз быстрее в Chrome и IE8). Работает также с IE6 и 7.

var input = $('input[type=submit]');
var form = input.length > 0 ? $(input[0].form) : $();

Ответ 3

Для меня это выглядит как самый простой/быстрый:

$('form input[type=submit]').click(function() { // attach the listener to your button
   var yourWantedObjectIsHere = $(this.form);   // use the native JS object with "this"
});