2013-04-25 81 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> 

所以我簡單地切換回來。