bootbox.js - >仅当条件为真时才在bootbox.dialog()中显示按钮

时间:2016-04-07 14:05:30

标签: javascript jquery bootbox

我使用bootbox创建对话框,但我希望某些按钮仅在某些条件下显示。

我搜索了很多,但没有发现任何帮助..

我像这样定义bootbox:

def should_generate_new_friendly_id?
  slug.blank? || title_changed?
end

如何让第二个按钮仅显示bootbox.dialog({ title: "title", message: "text", buttons: { btn1: { label: "Button 1", callback: function () { /* do something */ } }, btn2: { label: "Button 2", callback: function () { /* do something */ } } });

我之后也尝试删除按钮:

if(condition == true)

但没有成功。

任何想法都赞赏!

格雷茨

2 个答案:

答案 0 :(得分:3)

只需修改传递给bootbox的按钮对象,就像这样

  var buttons = {
    btn1: {
      label: "Button 1",
      callback: function() {
        /* do something */
      }
    },
  }

  // change here !!!    
  if (false)
    buttons.btn2 = {
      label: "Button 2",
      callback: function() {
        /* do something */
      }
    }

  bootbox.dialog({
    title: "title",
    message: "text",
    buttons: buttons
  });

小提琴 - http://jsfiddle.net/7x5h91v2/

答案 1 :(得分:0)

你可以在bootbox中使用className,如下所示:

var condition = false;
var displayButton="show";
if(condition){
    displayButton="hide";
}

var dialog = bootbox.dialog({
    title: "title",
    message: "text",
    buttons: {
        btn1: {
            label: "Button 1",
            callback: function() {
                /* do something */
            }
        },
        btn2: {
            className: displayButton,
            label: "Button 2",
            callback: function() {
                /* do something */
            }
        }
    }

});

工作示例:https://jsfiddle.net/py6wbmvp/