如何限制bootbox模式的关闭图标以关闭模式以不激活取消

时间:2017-06-15 04:51:20

标签: javascript jquery bootstrap-modal bootbox

我已经实现了bootbox for alert。我面临着两个无法解决的问题。 当我点击一个按钮时,会打开一个启动箱确认,并带有两个按钮“是”和“否”按钮。但是当我点击右上角的关闭按钮时,我想这个盒子将被关闭,但它会触发取消按钮。另一个问题是当点击“Esc”按钮时,它也会触发关闭按钮。任何人都可以告诉我如何限制这个问题。

$(function() {
  $('.alert').on('click', function() {
    bootbox.confirm({
      message: "This is a confirm with custom button text and color! Do you like it?",
      buttons: {
        confirm: {
          label: 'Yes',
          className: 'btn btn-primary'
        },
        cancel: {
          label: 'No',
          className: 'btn btn-default'
        }
      },
      callback: function(result) {
        if (result == true) {
          bootbox.prompt({
            title: "This is a prompt with a set of checkbox inputs!",
            className: 'box 2',
            callback: function(result) {
              console.log(result);
            }
          });

        } else if (result == false) {
          alert('you have clicked No Button');
        } else {
          alert("There is some Error");
        }
        console.log('This was logged in the callback: ' + result);
      }
    });
  })
})
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.9/css/bootstrap-dialog.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.9/js/bootstrap-dialog.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js"></script>

<p>Content here. <a class="alert" href=#>Alert!</a></p>

1 个答案:

答案 0 :(得分:0)

<script>
$(function() {
    $('.alert').on('click', function() { 

        var onSubmit = function() {
            //Process form data
            alert("Submit");
            dialog.modal('hide');
        }

        var onCancel = function()
        {
            bootbox.dialog({
                message: '<input class="form-control input-sm" id="inputsm" type="text">',
                title: "Custom label",
                onEscape: true,
                buttons: {
                    main: {
                        label: "Save",
                        className: "btn-primary",
                        callback: function() {
                            console.log("Save");
                        }
                    }
                }
            })
        }

        var dialog = bootbox.dialog({
            message: "Perform this task?",
            onEscape: true,
            buttons: {
                cancel: {
                    label: 'No',
                    className: 'btn-default',
                    callback: onCancel
                },
                confirm: {
                    label: 'Yes',
                    className: 'btn-primary',
                    callback: onSubmit  // Handles OK button
                }
            }
        });

    })
})

</script>