jQueryダイアログのコンテンツに使用しているフォームとそのフォーム内のdivがあります。私の目標は、ダイアログをポップアップさせ、ユーザーがテキストボックスとテキストエリアに情報を入力し、フォームを送信してそのデータをコードビハインドで利用できるようにすることですが、その後、ダイアログ(ページ)を再度開くことができます。送信後も稼働し続けます)、新しいデータを入力し、必要に応じてフォームを再送信します。
私が実行した場合:
$('div#mydialog').appendTo($('form#foo'));
その後:
$('div#mydialog').dialog('open');
ダイアログはボタンのみで表示され、その後ろにdivが表示され、ユーザーはアクセスできません。(要するに、それはUIウィジェットのクラスター性交のように見えます)
フォーム(最初の場所)にdiv#mydialogを追加してから、.dialog('open')を呼び出すと、このような動作が発生するのはなぜですか。また、フォームを追加した後、正常に開くにはどうすればよいですか。 form#fooを使用して、ユーザーのデータをサーバーに送信しますか?
前もって感謝します
編集:何らかの理由で、ダイアログを最初に開いた後、ダイアログが追加されていないようです。つまり、何度も開いたり、編集したり、閉じたりします。ユーザーが[送信]をクリックし、divがフォームに追加されます。次に、ダイアログ(「開く」)をもう一度試行すると、Firebugは、現在の場所に正しく配置されたままであることを示します。フォーム-jQueryは、それを再度移動しようとはせず、代わりにインラインスタイルを変更するだけのようです。なぜそうなのか誰か知っていますか?
編集2:私のhtml /スクリプトのどれだけがあなたを助けるかわかりません、それは基本的にあなたがそれが何であるかを想像するものです:
<form id="foo"><! -- some form stuff -->
<div id="stufftoputindialog" style="display:none;">
<!-- text boxes/textareas to put in dialog -->
</div>
</form>
と
$('#stufftoputindialog').dialog({
height: 550,
width: 400,
modal: true,
buttons: {
"OK": function () { $(this).dialog("close"); },
"Cancel": function () { $(this).dialog("close"); }
},
autoOpen: false
}
編集ボタンをクリックすると:
$('#stufftoputindialog').dialog('open');
フォームの送信時:
$('#stufftoputindialog').appendTo('form#foo');
次に、編集ボタンをもう一度クリックすると、
$('#stufftoputindialog').dialog('open');
UIトレインレックを引き起こします(Firebugによると、#stufftoputindialogは</body>
、最初のようにフォームの外に移動していません)