$('#myForm').seralize()
を介してサーバー側コンポーネントに引数を渡すために使用 しています$.ajax()
が、jqueryuiダイアログが使用するdivにフォーム要素を含めると、は$('#myForm').seralize()
そのdiv内のフォーム要素の変更を認識しません。
私のjsfiddleの例をご覧ください。
jQuery UIダイアログを使用すると、実際には$('#myForm')が再度ラップされ、レベルのすぐ下に移動します。
ダイアログでfirebug/chrome devtoolを使用して「要素の検査」を実行できます。ダイアログ要素がフォーム要素に属していないため、チェックボックスデータがありません。
コールバックをバインドするか、別のフォームを作成して、次のようにシリアル化された文字列を取得できます。
$('#form_1').serialize() + '&' + $('#form_2').serialize();
お役に立てば幸いです、乾杯。
jQuery UIダイアログは、bodyタグの最初または最後(どちらかは忘れます)に配置されます。つまり、これらの要素はフォームの一部ではなくなります。HTML5を使用している場合は、これらの入力に新しい属性を与えることで修正できます。form="myForm"
デモ: http: //jsfiddle.net/vXLve/7/
これは、完全に別の場所 (ページの下部にあると思います) に複製することによって、 から$('#dialog').dialog()
移動#dialog
するためです。#myform
<div>
以下を使用して、ダイアログで入力を見つけることができます。
$('#dialog :input').serialize();
おそらく、2 つのセットを分割して、一緒にサーバーに送り返すことができます。
...
data: {
common: $('#myForm').serialize(),
dialog: $('#dialog :input').serialize();
},
...
または、次のように組み合わせることもできます。
...
data: $('#myForm').serialize() + '&' + $('#dialog :input').serialize(),
...
更新されたjsFiddle。