jQuery找到父表单

时间:2009-10-25 18:54:54

标签: jquery traversal

我有这个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 个答案:

答案 0 :(得分:463)

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

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

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

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

答案 1 :(得分:53)

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

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

答案 2 :(得分:13)

对我而言,这看起来最简单/最快:

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

答案 3 :(得分:0)

另见jquery/js -- How do I select the parent form based on which submit button is clicked?

$('form#myform1').submit(function(e){
     e.preventDefault(); //Prevent the normal submission action
     var form = this;
     // ... Handle form submission
});

答案 4 :(得分:0)

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