2014-01-24 69 views
0

在我的情況下,當我點擊按鈕確認框被調用,但在同一時間服務器端代碼執行沒有確認。 我的代碼是bootbox確認無法正常工作

function btnApprovePayments() 
{ 
    var ans = checkrecordofpayment(); //here returns true or false    
    if (ans == true) { 
     bootbox.confirm("Are You Sure To Approve This Payment ?", function (e) {     
       if(e) 
       { return true; } 
     });    
    }  
} 
<asp:Button ID="btn_Approve_Payments" runat="server" Text="Approve" OnClientClick="return btnApprovePayments();" onclick="btn_Approve_Payments_Click" /> 

回答

1

bootbox.confirm在行爲asynchronus所以我們不能阻止它的流量。我們必須改變我們的問題行爲

首先,您必須通過應用e.preventdefault()來防止bootbox的默認行爲。 然後添加你的邏輯在真正的部分,無論你想做什麼。 然後通過使用__doPostBack('btnDelete','OnClick')調用服務器端函數;

$(function() { 
    $(".popup_button_delete").click(function (e) { 
     e.preventDefault(); 
     var counter = GetSelected(); 
     if (counter > 0) { 
      bootbox.confirm(' <%=GetLocalResourceObject("DeleteConfirm") %> ', function (confirmed) { 
       if (confirmed == true) { 
        __doPostBack('btnDelete', 'OnClick'); 
       } 
      }); 
     } 
     else { 
      bootbox.alert('<%=GetLocalResourceObject("NoSelectionAlert")%>'); 
     } 

    }); 
});