jQuery UI-Dialog mit boolescher Rückgabe - true oder false

8

Ich versuche einen Ersatz für das javascript confirm () zu erstellen. Ich habe die jquery dialog () -Funktion gefunden, die vollständig angepasst werden kann. Das Problem ist, dass ich es nicht true oder false zurückgeben kann.

Hier ist mein Code:

%Vor%

Dies gibt nur ein Objekt zurück, bevor eine Option ausgewählt wurde:

%Vor%     
dipi evil 22.05.2012, 13:30
quelle

2 Antworten

27

jQueryUI-Dialogfelder können keine true oder false zurückgeben, da sie über anderen Inhalten angezeigt werden, aber ohne blockierende Ausführung.

Das Beste, was Sie tun können, ist:

  1. Machen Sie das Feld modal so, dass es den anderen Inhalt ausblendet

  2. liefert Rückrufe, die abhängig von der ausgewählten Option verwendet werden.

Für zusätzliche Bonuspunkte können Sie ein $.Deferred() promise-Objekt erstellen und es zurückgeben, wenn Sie das Dialogfeld anzeigen. Sie können dann resolve oder reject , die in den Button-Event-Handlern versprechen.

Damit erhalten Sie eine saubere Trennung zwischen dem Anzeigen des Dialogfelds und dem Ausführen der nachfolgend ausgelösten Aktionen:

%Vor%     
Alnitak 22.05.2012, 13:31
quelle
7

Die erste Antwort ist in Ordnung - ich dachte, ich würde nur ein wenig Code hinzufügen, der zeigt, wie Sie die Schaltfläche, auf die geklickt wurde, zurückgeben können:

%Vor%     
Peter Munnings 10.03.2015 20:15
quelle