2013-06-06 63 views
1

返回值我有一個這樣的javascript函數:從jQuery的模型確認或模式對話框

的Javascript:

function dailog_box(){ 
    $("#dialog-confirm").dialog({ 
     resizable: false, 
     modal: true, 
     buttons: { 
      Ok: function() { 
      $(this).dialog("close"); 
      return true; //i want to return value here 
     }, 
      Cancel: function() { 
      $(this).dialog("close"); 
      return false; //i want to return value here 
      } 
     } 
    }); 
} 

的Html

<div id="dialog-confirm" title="Prescriptions" style="display:none;"> 
    <p> 
     <span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span> 
     These items will be permanently deleted and cannot be recovered. Are you sure?<br/> 
     <input type="checkbox" name="check_od" id="check_od"/> The prescription is correct; 
    </p> 
</div> 

調用dialog_box()後函數我想要在變量標誌中返回的值,我這樣做:

的Javascript

var flag = dailog_box(); 
alert(flag); 

但結果是不確定的。並且在我點擊任何按鈕之前警報也會發生。所以我應該怎麼做才能得到的值在模型按鈕中單擊任何按鈕後

有關更多信息,您可以檢查http://jsfiddle.net/8e388/13/ 我希望返回的值被警告。通過對jsfiddle的新的方式, 。

回答

1

我建議你使用callback

buttons: { 
      Ok: function() { 
      callbackSuccess(); 
      $(this).dialog("close"); 
     }, 
      Cancel: function() { 
      callbackCancel(); 
      $(this).dialog("close"); 
      } 
     } 

callbackSuccesscallbackCancel - 是簡單的功能

如果您ConfirmDialog創建助手會更容易通過回調

+0

我試過這個,但我只是想返回true或false – Robz

2

你不能完全按你的喜好。你可以這樣做,雖然使用另一種方法:

看看我fiddle

基本上我有一個全局變量feedback

var feedback = false; 

而且在ok或對話框的cancel,我設置了適當的值。 IMO在你的代碼中增加了一些更多的靈活性

+0

這工作不錯,但我想的值返回給VAR標誌我試着返回值,但沒有發生任何事情,而是我也試着將反饋的值賦給'flag',但是'false'的值被賦值了......我怎樣才能返回該值,就好像它是確認框的javascript – Robz

+0

我更新了你的小提琴請檢查一次 – Robz

+0

是的,我知道你在說什麼nt,但正如我所說這是不可能的(或至少我不知道這種方法) – MaVRoSCy