この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"]
が含まれるフォームを選択するにはどうすればよいですか? (送信ボタンをクリックすると、フォームを選択してフィールドを追加したい)
closest
を使用することをお勧めします。これは、最も近い一致する親要素を選択します。
$('input[name="submitButton"]').closest("form");
名前でフィルタリングする代わりに、私はこれをします:
$('input[type=submit]').closest("form");
すべての入力に存在するフォーム参照を使用できます。これは、.closest()
よりはるかに高速です(ChromeおよびIE8では5〜10倍高速)。 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`
});
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
});