0

In my case when I click on button confirm-box is called but at the same time server side code executes without confirmation. My code is

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" />
4

1 回答 1

1

bootbox.confirm 在行为上是异步的,所以我们不能停止它的流动。我们必须改变我们对问题的行为

首先,您必须通过应用 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")%>'); 
         }

     });
 });
于 2014-05-07T05:41:37.847 回答