2014-01-24 68 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")%>'); 
     } 

    }); 
});