2016-04-07 9 views
0

Ich benutze Bootbox, um einen Dialog zu erstellen, aber ich möchte, dass bestimmte Schaltflächen nur unter bestimmten Bedingungen angezeigt werden.bootbox.js -> Schaltfläche in bootbox.dialog() nur anzeigen, wenn Bedingung wahr ist

ich viel gesucht, aber nichts gefunden nützlich ..

definiere ich die Bootbox wie folgt aus:

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

Wie kann ich die zweite Taste machen nur if(condition == true) erscheinen?

Ich habe auch versucht die Taste danach wie folgt zu entfernen:

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

Aber ohne Erfolg.

Irgendeine Idee geschätzt!

Greetz

Antwort

3

ändern Sie einfach die Tasten Objekt, das Sie Ihre Bootbox passieren, wie so

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

Ja, das hat den Trick perfekt gemacht! Vielen Dank #potato – Paco

0

Sie mit className in Bootbox wie diese spielen kann:

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

}); 

Arbeiten exemple: https://jsfiddle.net/py6wbmvp/

+0

Dank Quentin, interessanter Ansatz. Aber ich bevorzuge #potatos zu antworten, weil die Buttons überhaupt nicht erzeugt werden, nicht nur versteckt. Auch ist es ein bisschen flexibler – Paco

Verwandte Themen