首页 文章

Bootbox回调无法正常工作

提问于
浏览
8

我想用这个:

$('#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 回答

  • 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
    });
    

相关问题