我需要在模态窗口中加载包含表单的 html 页面。当模式窗口打开并按下提交按钮时,我需要在同一个远程 html 页面中提交数据,然后关闭模式窗口。这是我的代码: 我正在使用此代码(page.html)打开模式窗口:
$(".genbutton-options, .ajax-edit").click(function(){
var id = $(this).attr("id").replace('edit-', '');
var xtraParam = "";
if( $(this).attr("rel") == "profile" ){
var xtraParam = "&r=sm";
}
if( $(this).attr("rel") == "set" ){
var xtraParam = "&r=s";
}
if( $(this).attr("rel") == "stream" ){
var xtraParam = "&r=stream";
}
var dialogOpts = {
modal: true,
bgiframe: true,
autoOpen: false,
width: 716,
buttons: {
"Save": function() {
$("#content-dialog").hide();
$(this).append("<div class=\"preloader-ajax\">Hold on...</div>");
$(".ui-button").addClass("ui-state-disabled");
$("form[name='edit-ajax-form']").submit();
},
"Cancel": function() {$(this).dialog("close");}
},
open: function() {
$("#ed-"+id+"").load("edit.php?media="+id+""+xtraParam+"");
$("#edit-loader-"+id+"").show();
}
};
$("#ed-"+id+"").dialog(dialogOpts);
$("#ed-"+id+"").dialog("open");
return false;
});
这是在模式窗口 (edit.php) 中打开的页面:
<div id="content-dialog">
<form action="<?php echo $PHP_SELF;?>" enctype="multipart/form-data" method="post">
<div class="dialog-td1">Title</div>
<div class="dialog-td2">
<input type="text" name="title" value="Suitcase Chair?" class="dialog-inputtext" id="inputPicTitle" />
<p class="dialog-help" style="visibility:hidden">Some cool, sexy or funny title is required. Min 3 chars.</p>
</div>
<input type="submit" name="save" id="buttonSignup" class="dialog-button right" value="Save" />
<div class="preloader-signup right">Hold On</div>
<a href="javascript:history.back(1)" class="dialog-button-grey right" id="buttonCancel">Cancel</a>
</form>
</div>
<?php
if(isset($_POST)){
//do something
echo "data submitted";
}
?>
问题是当我点击提交按钮时,数据被保存但浏览器被重定向到edit.php(在模式窗口中打开的同一页面)。我想做的是,当我点击提交按钮时,要保存数据,然后关闭模式窗口,而不需要任何浏览器重定向或刷新。我怎样才能做到这一点?