Bootbox回调无法正常工作

时间:2013-05-26 13:32:00

标签: javascript jquery bootbox

我正在尝试使用它:

 $('#delete').live('click',function(){
                var result;
                bootbox.confirm("Are you sure?", function(response){
                        result=response;
                });
                alert(result);
                return result;
            });

但是当点击按钮时:

警报首先显示,并且仅在该引导框显示确认对话框后显示。

我想返回响应,但是如果我在回调中执行它不起作用,因为它返回来自回调的响应而不是$('#devicedelete')。live('click',function(){ });

顺便说一下,我正在尝试根据回复提交表单。因此,如果我返回'true'表单将被提交,否则如果它返回'false',表单将不会被提交。

请检查:http://pastebin.com/9H3mxE9Y

我有一个包含每行复选框的大表,用户选中复选框,然后点击任何按钮'删除','复制'等,并提交表格。

由于

1 个答案:

答案 0 :(得分:4)

对话框是异步的,您可以立即阻止默认操作,然后在用户接受时调用提交。以下是一个示例:http://jsfiddle.net/ty5Wc/3/

$('#delete').on('click', function (e) {
    e.preventDefault();
    bootbox.confirm("Are you sure?", function (response) {        
        if(response) {
            $('#form').submit();
        }
    });
});
$('#form').submit(function () {
    //do your validation or whatever you need to do before submit
});

编辑:在与OP讨论之后,他还希望在查询字符串中传递按钮值,我的解决方案是:http://jsfiddle.net/ty5Wc/5/

$('#delete').on('click', function (e, confirmed) {
    if (!confirmed) {
        e.preventDefault();
        bootbox.confirm("Are you sure?", function (response) {
            if (response) {
                $('#delete').trigger('click', true);
            }
        });
    }
});
$('#form').submit(function (e) {
    //do your validation or whatever you need to do before submit
});