2015-10-14 35 views
0
<a class="btn btn-info" href="home/delete" onclick="return confirmDelete()"> 
    <i class="glyphicon glyphicon-edit icon-white"></i> 
    Delete 
</a> 

confirmDelete函數打開頁面,不等待返回函數。我的功能是:javascript button onClick不等功能返回true並打開鏈接

function confirmDelete(){ 
    bootbox.confirm("Are you sure?", function(result) { 
    if (result) { 
     console.log("User confirmed dialog"); 
     return true; 
    } else { 
     console.log("User declined dialog"); 
     return false; 
    } 
}); 

但下面的代碼工作正常,並等待ok打開鏈接。

<a class="btn btn-info" href="home/delete" onclick="return confirm()"> 
    <i class="glyphicon glyphicon-edit icon-white"></i> 
    Delete 
</a> 

回答

4

因爲沒有辦法等待window.confirm這樣的調用。您需要使用回撥進行確認,並設置窗口位置爲您進行導航。

<a class="btn btn-info " href="home/delete" onclick="return confirmDelete(this);"> 
    <i class="glyphicon glyphicon-edit icon-white"></i>Delete</a> 

和使用GET請求刪除警告更改到你的腳本

function confirmDelete (anchor) { 
    bootbox.confirm("Are you sure?", function(result) { 
     if (result) { 
      window.location.href = anchor.href; 
     } 
    }); 
    return false; 
} 

NOW是一個很壞很壞的壞主意。如果網頁抓取工具或鏈接預加載器觸擊了該頁面,它將向錨點發出請求並清除數據。

+0

謝謝,它工作:)而且我修改了我的原始代碼的href它被加密之前發送與獲取手段而不是href =「家/刪除」其href =「家/刪除/ asjfaskdjfksljfksafsaf」(一些ID ):) –