237

我有这个 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"]?(当我单击提交按钮时,我想选择表单并在其中附加一些字段)

4

5 回答 5

509

我建议使用closest,它选择最匹配的父元素:

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

我不会按名称过滤,而是这样做:

$('input[type=submit]').closest("form");
于 2009-10-25T18:58:53.420 回答
56

您可以使用所有输入中存在的表单引用,这比.closest()(Chrome 和 IE8 中快 5-10 倍)要快得多。也适用于 IE6 和 7。

var input = $('input[type=submit]');
var form = input.length > 0 ? $(input[0].form) : $();
于 2011-07-25T09:39:54.517 回答
22

对我来说,这看起来是最简单/最快的:

$('form input[type=submit]').click(function() { // attach the listener to your button
   var yourWantedObjectIsHere = $(this.form);   // use the native JS object with `this`
});
于 2013-09-20T16:20:20.483 回答
3

从 HTML5 浏览器开始可以使用inputElement.form- 属性的值必须是<form>同一文档中元素的 id。有关MDN的更多信息。

于 2018-07-13T07:41:04.693 回答
0

另请参阅jquery/js -- 如何根据单击的提交按钮选择父表单?

$('form#myform1').submit(function(e){
     e.preventDefault(); //Prevent the normal submission action
     var form = this;
     // ... Handle form submission
});
于 2010-03-07T10:18:43.357 回答