web-dev-qa-db-ja.com

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"]が含まれるフォームを選択するにはどうすればよいですか? (送信ボタンをクリックすると、フォームを選択してフィールドを追加したい)

206
kmunky

closest を使用することをお勧めします。これは、最も近い一致する親要素を選択します。

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

名前でフィルタリングする代わりに、私はこれをします:

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

すべての入力に存在するフォーム参照を使用できます。これは、.closest()よりはるかに高速です(ChromeおよびIE8では5〜10倍高速)。 IE6および7でも動作します。

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

私には、これは最も単純/最速のように見えます:

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

HTML5ブラウザーでは、inputElement.formを使用できます。属性の値は、同じドキュメント内の<form>要素のIDでなければなりません。 MDN に関する詳細情報。

0

jquery/js-どの送信ボタンがクリックされたかに基づいて親フォームを選択するにはどうすればよいですか?

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