记录被删除没有确认?

时间:2014-02-14 17:34:53

标签: javascript jquery twitter-bootstrap

我在删除记录之前使用bootbox对话框进行确认。

这是我的jQuery脚本,用于在删除记录之前进行确认。

<a class="btn btn-xs btn-danger" id="deleteContent" title="Delete">delete</a>

$('#deletec').click(function (e) {
    bootbox.dialog({
        message: "you data is save",
        title: "Custom title",
        buttons: {
            success: {
                label: "Success!",
                className: "btn-success",
                callback: function () {
                    Example.show("great you save it");
                }
            },
            danger: {
                label: "Danger!",
                className: "btn-danger",
                callback: function () {
                    Example.show("record deleted!");
                }
            }
        }
    });
});

显示正确的对话框,但记录被删除而未经确认,任何人都可以告诉我如何在没有确认的情况下阻止删除记录?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您无法执行所需操作,因为您使用的模式对话框无法暂停点击操作。您需要取消点击操作而不是拨打电话。

一种方法是取消绑定并再次调用

$('#deleteContent').on("click", function (e) {
    e.preventDefault();
    bootbox.dialog({
        message: "you data is save",
        title: "Custom title",
        buttons: {
            success: {
                label: "Success!",
                className: "btn-success",
                callback: function () {
                    Example.show("great you save it");
                }
            },
            danger: {
                label: "Danger!",
                className: "btn-danger",
                callback: function () {                        
                    Example.show("record deleted!");
                    $('#deleteContent').off("click")[0].click();
                }
            }
        }
    });
}); 

正如我在上面的评论中所说,用get获取删除请求是一个不好的想法。如果用户有一个预取页面的插件,请告别数据库中的所有数据。


代码中会发生什么

  1. e.preventDefault();取消点击事件,使其不会转到服务器
  2. $('#deleteContent').off("click") //删除click事件,以便不再调用
  3. [0].click() //选择DOM元素并调用click事件来触发导航