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

我如何选择输入[name="submitButton"]是一部分的形式? (当我点击提交按钮时,我想选择表单并在其中添加一些字段)


当前回答

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

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

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

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

其他回答

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

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

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

也看到jquery/js——我如何选择基于哪个提交按钮被点击的父窗体?

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

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

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

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

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

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

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