0

我一直致力於爲表單提交顯示構造對話框的解決方案。使用jQueryUI/Bootstrap對話框推遲jQuery

基本上我想用myown替換內置的confirm()函數,所以我可以寫我的表格爲<form onsubmit="customConfirm()"></form>。我完全可以使用承諾爲此,所以我可以阻止表單提交,顯示對話框,返回承諾,然後單擊「確定」和「取消」按鈕以解決或拒絕該承諾。

問題是,我的延期對象似乎被忽略,donefail函數都被調用 - 我有created a little jsFiddle顯示我在說什麼。

我必須說,我沒有承諾很多,所以也許我做錯了什麼。

回答

1

我真的不知道你想什麼,但這個工作得很好:http://jsfiddle.net/vvhttp4x/1/

var dfd = confirmDialog(); 
dfd.done(function() { 
    alert("done"); 
}); 
dfd.fail(function() { 
    alert("fail"); 
}); 

這是一個承諾,所以如果你做dfd.state()馬上您總能獲得pending

您應該繼續處理donefail處理程序中的代碼。

+0

Thansk,那是快!這導致我找到答案,我渴望將我的「完成」和「失敗」函數調用包裝在令人討厭的函數中 –

0

@Halcyon的回答讓我找到答案。

我需要將我的donefail函數調用包含在惱人的函數中。

var name = "Billy"; 
    var dfd = confirmDialog(); 
    $.when(
     dfd 
    ).then(function() { 
      alert('Hello there ' + name) 
      },function() { 
      alert('Goodbye ' + name) 
    }); 

Updated jsFiddle