たくさんのフォームがあるページがあり、ユーザーはそのページで何かを選択します。ユーザーがそうするとき、私はその要素をどこか別の場所に置く必要があります。これは本当にショッピングカートのようです。しかし、意図したとおりに実際に機能するページの最初のフォーム以上のものを取得することはできません。私は複数のことを試しました:
$('#something')
は一致しないのでキャッチしません。だから私はこれをどうするか考えています。ページで送信されたフォームからのみデータを受信する必要があります。そして、前述のように、私が今持っているように、それらのすべてに何らかの種類のプレフィックスを付けることができますが、それをどのように一致させるかわかりません。
ヘルプは大いに感謝されるでしょう!
要求されたいくつかのコード(もちろん、私が意味することを示すための例にすぎません):
HTML:
<form id="something-0"><input type="hidden" value="0"><input type="submit"></form>
<form id="something-1"><input type="hidden" value="1"><input type="submit"></form>
JQuery:
$("#something-%").submit(function(e) {
e.preventDefault();
$("#some-span").html(data);
});
#something-%に「-」の後に続くものをすべて受け入れてほしいと思っています。ご理解いただければ幸いです。
一般的な答えとして、要素のグループを分類するには、class
属性を使用して、各要素に同じクラス名を付けます。その後、そのクラスで要素を選択できます。 1つの要素に複数のクラスを含めることができます。
_$(".something");
_
Idを使用する必要がある場合は、属性セレクターを使用できます。
_$("[id^='something']"); // all elements with an id beginning with 'something'
$("[id$='something']"); // all elements with an id ending with 'something'
_
この特定の質問では、ページ内の任意のフォームを操作するため、最も簡単な選択は要素名セレクターを使用することです。
_$("form");
_
セレクターに関係なく、submit()
ハンドラー内でthis
を参照することにより、送信されたフォームを識別できます。
_$("form").submit(function (e) {
e.preventDefault();
var formId = this.id; // "this" is a reference to the submitted form
});
_
セレクター 'form'を使用して、すべてのフォームをキャッチできます。
$("form").submit(function() {
var theForm = $(this);
var formID = theForm.attr("id");
// do something
});
このようなもの...
$('#myForm').submit(function (e) {
e.preventDefault;
if (e.result == true) {
alert("This form was submitted!")
}
});