2012-05-11 12 views
13

Leider das Doc Bootbox (http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap) nicht lehren, wie der Bestätigungsdialog aufrufen. Wie es im Dokumentfenster immer erscheint, wenn die Seite geladen wird, was falsch ist, sollte beim Aufruf durch einen Klick auf eine Löschen-Schaltfläche erscheinen. Dies ist der Code, der erfolglos versucht wurde.Bootbox Confirm Dialog Probleme

// show "false" does not work, the confirm window is showing when page is loaded. 
$(function() { 
bootbox.confirm("Confirm delete?", "No", "Yes", function(result) { 
show: false 
});  
}); 

// need show the confirm window when the user click in a button, how to call the confirm window? 

<td><a class="icon-trash" onclick="bootbox.confirm();" href="{% url 'del_setor' setor.id %}" title="Delete"></a></td> 

Wie kann ich festlegen, dass diese Bootbox nur angezeigt wird, wenn auf die Schaltfläche zum Löschen geklickt wird? Danke!

EDIT ige Lösung:

$(function() { 
$("a#confirm").click(function(e) { 
    e.preventDefault(); 
    var location = $(this).attr('href'); 
    bootbox.confirm("Confirm exclusion?", "No", "Yes", function(confirmed) { 
     if(confirmed) { 
     window.location.replace(location); 
     } 
    }); 
});  
}); 

Jetzt arbeitet die Löschung, wenn ich klicken Sie in "Ja". Ich fragte die Entwickler des Plugins, das vollständige Beispiel in das Dokument zu legen, so dass Benutzer keine Beiträge darüber erstellen müssen, wie das Objekt zu entfernen ist, wenn "Ja" geklickt wird. Grüße.

+0

lachen lachen - ja, das scheint wie etwas, das die Entwickler benötigen, zu wissen wäre. –

Antwort

6

Möglicherweise möchten Sie die Quelle auf „Bestätigen“ -Link unter „Grundlegende Bedienung“ auf dieser Seite überprüfen: http://bootboxjs.com/

Hier ist ein Ausschnitt:

$("a.confirm").click(function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function(confirmed) { 
     console.log("Confirmed: "+confirmed); 
    }); 
}); 

Unter der Annahme, jQuery in der Benutzeroberfläche zur Verfügung steht Ihnen Ich arbeite daran, ein Attribut onClick in Ihren Anchor-Tags zu vermeiden. Nur meine zwei Cent.

+0

Ok, danke für die Antwort! Jetzt erscheint das Fenster, aber wenn ich auf "Ja" klicke, passiert nichts, der Ausschluss tritt nicht auf. Grüße. – LinuxMan

+0

Sie können die JS-Konsole überprüfen, um festzustellen, ob ein Fehler ausgelöst wurde. Ohne den Code zu sehen, an dem Sie arbeiten, ist es schwierig zu sagen, was das Problem verursacht. Könnten Sie es in eine JSFiddle werfen? – jstam

+1

Der Code wurde geschrieben, es ist nicht notwendig, in jsfiddle zu veröffentlichen, da ich nur diesen Code zur Anzeige habe. Und da habe ich kein Objekt zu entfernen. Was passiert, ist einfach, ich klicke auf "Ja" und das Objekt wird nicht entfernt, obwohl im Firebug "remove: true" angezeigt wird. In Firebug wird keine Fehlermeldung angezeigt, das Objekt wird nicht entfernt. Grüße. – LinuxMan

0
$(document).on("click", ".confirm-modal", function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are You sure?", function(result) { 
     if(result) { 
      top.location.href = e.target.href; 
     } 
    }); 
}); 
+2

Für solch eine späte Antwort sollten Sie Erklärungen hinzufügen. – manuell

3

Ich brauchte das auch, aber ich ein wenig verändert paar Dinge ... Werfen Sie einen Blick ...

Fügen Sie diese Funktion in Ihrem globalen „jQuery Ready“ Funktion wie folgt aus:

$(document).on("click", "[data-toggle=\"confirm\"]", function (e) { 
    e.preventDefault(); 
    var lHref = $(this).attr('href'); 
    var lText = this.attributes.getNamedItem("data-title") ? this.attributes.getNamedItem("data-title").value : "Are you sure?"; // If data-title is not set use default text 
    bootbox.confirm(lText, function (confirmed) { 
     if (confirmed) { 
      //window.location.replace(lHref); // similar behavior as an HTTP redirect (DOESN'T increment browser history) 
      window.location.href = lHref; // similar behavior as clicking on a link (Increments browser history) 
     } 
    }); 
}); 

und nur ein paar „Daten- * Attribute“, um Ihre Schaltfläche oder einen Link wie das hinzufügen:

<a class="btn btn-xs btn-default" data-toggle="confirm" data-title="Do you really want to delete the record 123?" href="/Controller/Delete/123"><span class="fa fa-remove"></span> </a> 

So ... auf diese Weise können Sie ap haben personalisierte Frage .. Dies ist viel intuitiver für Ihre Benutzer ...

Hat Ihnen gefallen ?!

Siehe Demo: jsfiddle

Verwandte Themen