通过ajax将数据传递给对话框Jquery

时间:2010-06-05 10:04:42

标签: jquery ajax post dialog

我正在尝试将数据从我的表单发布到加载外部内容的jquery对话框。

我正在序列化有效的表单数据(显示在网址中),但对话框无法打开:

      $("#wavajax button").click(function() {
  $.post({url: 'player/index.php', data: $("#wavajax").serialize(), 
         success: function (data) {

                     $("#recordingdialog").load("player/index.php", [], function(){
               $("#recordingdialog").dialog("open");

                 }
  });
  return false;
});

我做错了什么,我是否正确行事???

3 个答案:

答案 0 :(得分:4)

认为这就是你所追求的:

$("#wavajax button").click(function() {
  $.post('player/index.php', $("#wavajax").serialize(), function (data) {
       $("#recordingdialog").html(data).dialog("open");
  });
  return false;
});

您已经从POST中获取了HTML内容(或者至少我认为是这种情况),所以只需使用.html()将该响应放入#recordingdialog,然后进行对话电话。如果您以前没有创建带有选项的对话框,那么只需.dialog()即可,.dialog('open')适用于您之前使用各种选项创建对话框并希望现在打开它,如下所示:< / p>

$("#recordingdialog").dialog({
  //other options, width, height, etc...
  autoOpen: false
});

You can find a full list of these options here

答案 1 :(得分:0)

首先显示对话框并加载内容可能是个更好的主意。

$('#recordingdialog').dialog('destroy'); // just in case
$('#recordingdialog').dialog({
   position: 'center',
   // some more options
   open:  function(e, ui){
        $.post('player/index.php', data: $("#wavajax").serialize(),function (data){   
              $("#recordingdialog").html(data);   
        });
   }
});
在您的点击处理程序中

UI Dialog Doc

答案 2 :(得分:0)

好的,我有这个工作:

      $("#recordingdialog").dialog({
  //other options, width, height, etc...
     modal: true,
      bgiframe: true,
      autoOpen: false,
      height: 550,
      width: 550,
      draggable: true,
      resizeable: true,
      title: "Play Recording",});


$("#wavajax button").click(function() {
  $.post('player/index.php', $("#wavajax").serialize(), function (data) {
       $("#recordingdialog").html(data).dialog("open");
  });
  return false;
});

谢谢尼克!但有一个问题。当我关闭对话框并单击按钮再次打开它时,为什么不发生任何事情?