ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery UI Dialogコントロールのフォームが正常に送信できない問題の解決方法_jquery

jQuery UI Dialogコントロールのフォームが正常に送信できない問題の解決方法_jquery

WBOY
WBOYオリジナル
2016-05-16 18:13:48949ブラウズ

最近、jQuery UI の Dialog コントロールを使用しているときに、このコントロールにフォームを配置すると、すべてのフォームが正常に送信できないことがわかりました。具体的な症状は次のとおりです。
1. 送信ボタンが無効になっています。クリックしても反応がありません。

2. 他の手段を使用してページを送信した場合でも、サーバーはダイアログ内のフォーム データを取得できません。

ページのソース コードを調査した結果、jQuery UI Dialog コントロールの初期化時に動的に生成された HTML 要素がページの最後と form 要素の後ろに追加され、元の Dialog テンプレート パーツ (これには form 要素が含まれていました) も、動的に生成された HTML 要素に移動されました。つまり、Dialog が初期化された後、元々フォーム内にあったフォームがフォーム外に移動されたため、Dialog テンプレート内のすべてのフォームが無効になってしまいました。

jQuery UI のダイアログのデザインが機能なのかバグなのかはわかりません。 Dialog で通常のページ送信を実現するために、上記の分析に基づいて、Dialog コントロールによって動的に生成された HTML 要素を jQuery UI コントロールの「open」イベント ハンドラーの form 要素に移動するという簡単な解決策を見つけました。コードは次のとおりです:

コードをコピーします コードは次のとおりです:

$("#dlg ").dialog( {
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
} );

コード内の「aspnetForm」は、ASP.NET アプリケーションによって自動生成される現在のページのフォーム要素 ID であり、使用時に独自のページのフォーム ID に変更できます。それ。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。