【问题标题】:Bootbox callback not working properlyBootbox 回调无法正常工作
【发布时间】:2013-05-26 13:32:00
【问题描述】:

我正在尝试使用这个:

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

我有一个大表,每行都有复选框,用户选择复选框并单击“删除”、“复制”等按钮中的任何一个,然后提交表单。

谢谢

【问题讨论】:

    标签: javascript jquery bootbox


    【解决方案1】:

    对话框是异步的,您可以立即阻止默认操作,如果用户接受则调用提交。这是一个例子: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
    });
    

    【讨论】:

    • 嗨,我想返回响应的值,响应将是“真”或“假”。但是如果我从回调中执行它,它就不起作用,因为它从回调返回响应。
    • 点击时会发生这种情况,它会返回到什么位置?无论如何,不​​要在它返回后做任何你想做的事情,只需将它们变成函数并从回调中调用这些函数。
    • 我已经更新了我的答案,你可以用preventDefault()阻止表单提交
    • 我不得不在不同的函数中使用提交事件。所以如果这个点击事件返回true,并且表单'submit'事件返回true,那么表单将被提交,所以我不能使用e.preventDefault();对于 click ,只需返回 true 或 false。
    • 听起来您有两个侦听器来处理本质上相同的事件,为什么不将它们结合起来呢?我认为我必须查看更多上下文才能提供更多帮助
    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多