Javascript 开机盒确认工作不正常

Javascript 开机盒确认工作不正常,javascript,jquery,asp.net,bootbox,Javascript,Jquery,Asp.net,Bootbox,在我的例子中,当我点击按钮时,会调用确认框,但同时服务器端代码会在没有确认的情况下执行。 我的代码是 function btnApprovePayments() { var ans = checkrecordofpayment(); //here returns true or false if (ans == true) { bootbox.confirm("Are You Sure To Approve This Payment

在我的例子中,当我点击按钮时,会调用确认框,但同时服务器端代码会在没有确认的情况下执行。 我的代码是

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" />
功能btnApprovePayments()
{  
var ans=checkrecordofpayment();//这里返回true或false
如果(ans==true){
bootbox.confirm(“您确定要批准此付款吗?”,函数(e){
如果(e)
{返回true;}
});              
}     
}

bootbox.confirm在行为上是异步的,因此无法停止其流。我们必须改变对这个问题的态度

首先,您必须通过应用e.preventdefault()来防止bootbox的默认行为; 然后在true部分添加您的逻辑,无论您想做什么。 然后使用uu doPostBack('btnDelete','OnClick')调用服务器端函数

$(函数(){
$(“.popup\u button\u delete”)。单击(函数(e){
e、 预防默认值();
var counter=GetSelected();
如果(计数器>0){
引导框。确认(“”,功能(已确认){
如果(已确认==真){
__doPostBack('btnDelete','OnClick');
}  
});
}
否则{
bootbox.alert(“”);
}
});
});
 $(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")%>'); 
         }

     });
 });