0

私はWebアプリケーションを開発しています。フォームのあるページがあり、中にform1フォームのある別のページをプッシュしています。どちらの形式にもいくつかの値があります。両方のフォームをシリアル化したい。ルートフォーム()をシリアル化するように指定すると、ルートフォーム( )のみがシリアル化されます。form2form1form1$('#form1').serialize();form1form2

このように指定する$('#form1, #form2').serialize();$('form').serialize();、すべてのフォームが封印されます。

$('form1').serialize();form2ではなくルートフォームのみをシリアル化するこのjQueryの何が問題になっていますか?

jsFiddleの例を試してみましたが、この例では正常に機能します。Webアプリケーションフォームの問題は何でしょうか?

4

2 に答える 2

2

ネストされたフォームはHTMLでは許可されていません。jQueryはそれらを処理するようには設計されていません。それらを作成しないでください。

于 2012-10-29T11:36:26.293 に答える
1

目的に応じてサポートされていなくても、:inputセレクターを使用できます。

$('#form1 :input').serialize();

フィルタを使用したパフォーマンスを強くお勧めします。

$('#form1 > *').filter(':input').serialize();

ネストされたフォームを使用している理由を説明できる場合は、いくつかの回避策を提案できます。たとえば、AJAXリクエストに2番目のフォームのみを使用する場合は、divでカバーして、これらのフォームアイテムを簡単に選択または追加のクラスを指定し、同様のセレクターを使用できます。

于 2012-10-29T11:48:32.720 に答える