2013-04-25 74 views
1

我从ajax调用的成功函数调用Jquery UI对话框。在该对话框的代码是这样的 -Jquery UI对话框按钮被执行而不点击

$.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

对我来说很好http://plnkr.co/edit/coWHsZZBshLDURgaItqU?p=preview – 2013-04-25 09:41:10

+0

我明白你在那里做了什么。你从一个按钮点击来调用它。但我不能这样称呼它。我从AJAX调用的成功函数内部调用。 – nasaa 2013-04-25 09:44:27

+0

你能分享打开对话框的代码吗 – 2013-04-25 09:54:09

回答

1

为什么不尝试在$(document).ready块中定义对话框而不是在成功方法中?在这种情况下,你只需要像这样成功打开对话框:

$("#newQuoteAddedAlert").dialog('open'); 
+0

我这样做,它仍然调用按钮函数内的重载功能。我只是希望它不叫在页面加载 – nasaa 2013-04-25 10:44:51

+0

你可以尝试这样的:如果($( “#newQuoteAddedAlert”)对话框( “ISOPEN”)){ \t \t \t \t \t window.location.reload(); \t \t \t \t} – gradosevic 2013-04-25 10:53:00

+0

这没有奏效。但它给了我一个把旗子放在那里有意义并修复问题的想法。谢谢 – nasaa 2013-04-25 11:13:44

0

我有同样奇怪的问题。我没有调查很多,但它开始发生时,我改变了

<input type="button" value="Submit" onclick="submitForm()" /> 

到:

<button onclick="submitForm()">Submit</button> 

所以我简单地切换回来。

相关问题