javascript按钮onClick不等待函数返回true并打开链接

时间:2015-10-14 12:13:24

标签: javascript twitter-bootstrap

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

confirmDelete函数打开页面,不等待返回功能。我的职责是:

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>

1 个答案:

答案 0 :(得分: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>

以及对脚本的更改

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

现在作为使用GET请求进行删除的警告是一个坏不好的想法。如果网络抓取工具或链接预加载器点击该页面,它将向主持人发出请求并清除您的数据。