Bootbox对话框中的表单

时间:2016-07-26 14:43:34

标签: javascript twitter-bootstrap bootbox

我想显示一个Bootbox对话框,其中包含" OK"按钮。当用户点击" OK"按钮,它应该POST回来,用消息的ID确认用户已查看该消息。 Bootbox对话框是表单。我没有看到让对话框按钮成为隐藏字段的提交表单的方法,我认为这是实现目标的正确方法。

1 个答案:

答案 0 :(得分:0)

感谢Isabel IncMistalis提供的有用评论,我有一个有效的解决方案。

特定于我的实施的说明:

  • 消息包含需要响应的图像,因此我将相应的Bootstrap类添加到每个图像
  • 消息可能包含链接。单击链接相当于单击对话框
  • 上的“确定”

实现它的JavaScript ......

jQuery(function($, window, bootbox, undefined) {
    var accept = function(callback) {
        $.ajax({
            type: 'POST',
            data: {message_id: 244826},
            success: callback()
        });
    };

    var $message = $('<p><img src="https://www.gravatar.com/avatar/80fa81938a6d1df92cd101d7fe997a71" alt></p><p>Here is a message from <a href="https://stackoverflow.com/users/244826/sonny">Sonny</a>.</p>');
    $message.find('img').addClass('img-responsive center-block');
    $message.find('a').on('click', function(e) {
        var href = $(this).attr('href');
        if (0 === href.length) {
            return;
        }
        e.preventDefault();
        accept(function() { window.location.href = href; });
    });

    bootbox.dialog({
        message: $message,
        closeButton: false,
        buttons: {
            accept: {
                label: 'OK',
                callback: function() {
                    accept(function() { window.location.reload(); });
                }
            }
        }
    });
}(jQuery, window, bootbox));