Jquery UI对话框按钮无需单击即可执行

时间:2013-04-25 09:32:29

标签: jquery jquery-ui

我从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()。我希望它只在用户点击完成按钮后才能执行。

我做错了什么?

3 个答案:

答案 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。

因此,请将以上脚本与最新版本一起使用。