2016-04-07 2 views
0

Я использую bootbox для создания диалога, но я хочу, чтобы определенные кнопки отображались только при определенных условиях.bootbox.js -> Показать кнопку в bootbox.dialog(), только если условие истинно

Я искал много, но ничего не нашел полезное ..

Я определяю bootbox так:

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)?

Я также попытался удалить кнопку после этого, как это:

bootbox.dialog({...}) 
if(!condition) { 
    $('[data-bb-handler="btn2"]').remove(); 
} 

Но без успеха.

Любая идея оценена!

Greetz

ответ

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

Fiddle - http://jsfiddle.net/7x5h91v2/

+0

Да, это прекрасно сработало! Спасибо большое #potato – Paco

0

Вы можете играть с className в bootbox так:

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 */ 
      } 
     } 
    } 

}); 

Работа Exemple: https://jsfiddle.net/py6wbmvp/

+0

Thanks Quentin, интересный подход. Но я предпочитаю отвечать #potatos, потому что кнопки не генерируются вообще, а не только скрыты. Кроме того, это немного более гибко – Paco

Смежные вопросы