我从ajax调用的成功函数调用Jquery UI对话框。 Dialog的代码就是这样 -
$.ajax({
'url': "../../controller/myclass.cfc",
'data':{
method: "generateQuote",
'quoteItems':quoteItems,
returnFormat: "json"
},
success: function(data){
$("#place_of_loading_image").hide();
newQuoteId = data.toString();
//New Quote Confirmation popup
$( "#newQuoteAddedAlert" ).dialog({
autoOpen: false,
resize: 'auto',
width: 'auto',
modal: true,
closeOnEscape: false,
closeText: "Close" ,
position: "center top",
buttons: [{
text:"Continue", click: function(){
$("#newQuoteAddedAlert").dialog("close");
}},
{text:"Finish",click: function(){
$("#newQuoteAddedAlert").dialog("close");
//alert("shutup");
location.reload();
}
}]
});
//showConfirmationAlert(newQuoteId);
},error: function( objRequest, strError ){
}
});
我的问题是,对话框加载后,会立即调用Finish按钮函数内的location.reload()
。我希望它只在用户点击完成按钮后才能执行。
我做错了什么?
答案 0 :(得分:1)
为什么不尝试在$(document).ready块中定义对话框而不是成功方法?在这种情况下,您只需要成功打开对话框,如下所示:
$( "#newQuoteAddedAlert" ).dialog('open');
答案 1 :(得分:0)
我有同样奇怪的问题。我没有多少调查,但是当我改变时它开始发生了
<input type="button" value="Submit" onclick="submitForm()" />
为:
<button onclick="submitForm()">Submit</button>
所以我只是把它换回来了。
答案 2 :(得分:0)
我遇到了类似的问题。原因是:对话框代码是从旧页面复制的,具有jQuery v-1.7&amp;较旧的jQuery-ui.js和新页面有jQuery-3.3.1但是较旧的jQuery-ui.js。
因此,请将以上脚本与最新版本一起使用。