我正在尝试将数据从我的表单发布到加载外部内容的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;
});
我做错了什么,我是否正确行事???
答案 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
});
答案 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);
});
}
});
在您的点击处理程序中。
答案 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;
});
谢谢尼克!但有一个问题。当我关闭对话框并单击按钮再次打开它时,为什么不发生任何事情?