我在页面的页脚上有一个超级链接,它在jquery对话框中打开一个表单,我们将其称为M1。然后我输入所有信息并单击“创建”以创建用户。在创建一个新用户时,我会显示一个小模态(“我们称之为M2”),说“请稍等......有些消息”
现在我的问题是,当我留在(“M1”)时每次保持创建新用户时,我无法显示(“等待......某些消息”)的“(M2”)模式。 第一次来它(“M1”)并且下次它不再显示。如何关闭iam销毁和删除对话框。 (这是由于其他问题)
这是Code。
<div id="m2" style="visibility:hidden">
<img src="spinningwheel" border="0" align="middle" hspace="20" vspace="5"/> Creating USER...
</div>
$(document).ready(function() {
displaydialog();
});
function displaydialog(){
$('#m2').dialog({
autoOpen: false,
height: 100,
width: 250,
modal: true,
close: function() {
$(this).dialog('destroy');
$(this).remove();
}
});
}
$("#btncreate").click(function (){
$("#m2").removeAttr('style');
displaydialog();
$("#m2").dialog('open');
//get a json request based on data if suceess
if(success){
$("#m2").dialog('close');
}else{
$("#m2").dialog('close');
}
});
答案 0 :(得分:1)
@Derby,
$(document).ready(function() {
displaydialog();
});
function displaydialog(){
$('#m2').dialog({
autoOpen: false,
height: 100,
width: 250,
modal: true,
/* close: function() { // No need to Destroy the dialog
$(this).dialog('destroy');
$(this).remove();
}*/
});
}
$("#btncreate").click(function (){
// $("#m2").removeAttr('style');
// displaydialog();
$("#m2").dialog('open');
//get a json request based on data if suceess
// if you are using ajax post, try to close this box as part of response handler ( success/error).
jQuery.ajax({
data : {somekey : somevalue},
datatype: 'json',
error : function(jqXHR, textStatus, errorThrown) {
$("#m2").dialog('close');
},
success : function(data, textStatus, jqXHR) {
$("#m2").dialog('close');
},
type : 'GET',
url : 'dummyURL'
});
/* if(success){
$("#m2").dialog('close');
}else{
$("#m2").dialog('close');
} */
});
您不必每次都销毁并创建M2对话框。只需在文档就绪时调用displaydialog(),然后在对话框中使用open和close。你没有看到对话框,因为在调用你的ajax get请求之后会调用dialog(close)(如果你使用的是async:true)。因此,从ajax请求中关闭成功/错误的M2对话框。
答案 1 :(得分:0)
如果您使用ajax来检索新数据,浏览器将再次重新定义网络(不加载,重新定位),这样您就不再有dom准备好了。尝试调用displaydialog然后打开它。它会工作。无论如何,有一个更好的方法,我认为你的问题是逻辑。但是这个解决方案可行。