библиотека 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"]
часть ?
(когда я нажимаю на кнопку Отправить, я хочу выбрать форму и добавить в нее некоторые поля)
5 ответов:
Я бы предложил использовать
closest
, который выбирает ближайший соответствующий родительский элемент:$('input[name="submitButton"]').closest("form");
вместо фильтрации по имени, я бы сделал так:
$('input[type=submit]').closest("form");
Вы можете использовать ссылку на форму, которая существует на всех входах, это гораздо быстрее, чем
.closest()
(в 5-10 раз быстрее в Chrome и IE8). Работает на IE6 и 7 тоже.var input = $('input[type=submit]'); var form = input.length > 0 ? $(input[0].form) : $();
для меня это выглядит как самый простой/быстрый:
$('form input[type=submit]').click(function() { // attach the listener to your button var yourWantedObjectIsHere = $(this.form); // use the native JS object with `this` });
см. также jquery / js -- как выбрать родительскую форму, на основе которой нажата кнопка отправки?
$('form#myform1').submit(function(e){ e.preventDefault(); //Prevent the normal submission action var form = this; // ... Handle form submission });
как из HTML5 браузеров можно использовать
inputElement.form
- значение атрибута должно быть удостоверение<form>
элемент в том же документе. Подробнее о MDN.