jQuery-modale Dialogfeld wird nicht aufhören, die user-Eingabe
Ich bin neu in jQuery, aber bereits erfolgreich umgesetzt mehrere modale Dialoge mit der jqueryUI dialog-widget. Bei dem Versuch, zu implementieren, noch eines, das das modale Dialogfeld öffnet sich, aber der code weiter ausgeführt, ohne zu stoppen, für die Benutzereingabe. Mit jQuery 1.7.1 und jquery-ui-1.8.16.
Hier ist die definition von "Prototyp" des dialogs (es ist ein "Prototyp", weil es nicht nehmen die Aktionen auf den "OK" die Auswahl, die notwendig wären, um die Anforderungen zu erfüllen):
var $confirm = $('#confirm');
$confirm.dialog(
{
autoOpen:false,
width:440,
modal:true,
buttons:
{
OK: function()
{
$( this ).dialog( 'close' );
},
Cancel: function()
{
$( this ).dialog( 'close' );
}
}
});
Hier ist etwas test-code, öffnet sich der dialog:
[ some javascript that does error checking]
alert('stop1');
$('#confirm').dialog('open');
alert('stop2');
[ more javascript including submitting the form]
Was passiert ist das die erste Warnung zeigt. Bei Klick auf es öffnet sich der dialog zusammen mit der zweiten Warnung, die angibt, dass der dialog nicht auf Benutzereingaben warten. Die zweite Warnung ist modal und verhindert, dass der dialog aus zugegriffen wird. Wenn es angeklickt wird, übermittelt das Formular. Diese Sequenz zeigt, dass der dialog nicht auf Benutzereingaben warten.
Ich habe geschaut und geschaut bei meiner anderen erfolgreich umgesetzt, modale Dialoge und nicht sehen, was verursachen könnte, dass diese zu scheitern.
InformationsquelleAutor Jeffrey Simon | 2012-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den dialog nicht warten. Stattdessen werden Sie wollen, verwenden Sie diese als Ausgangspunkt, um zu entscheiden, was Sie wollen passieren. Anstatt also einschließlich der zusätzlichen code, den Sie können oder können nicht wollen, zu laufen, nachdem der dialog modal ist, also dass der Letzte Teil der Funktion.
Dann, mit Ihrem OK-oder Abbrechen-Funktionen den Aufruf von dort weiter mit dem workflow, wenn Sie wählen Sie ok, oder einfach nur verstecken und das tun, was Abbrechen Zeug getan werden muss, um mit dem Abbrechen.
Kurz, das modale Dialogfeld wird nicht anhalten die Ausführung von javascript, es wird nur ausgeführt den code zum öffnen des modalen und am laufen halten.
Ein anderer Weg, zu sagen, was ich schon oben sein könnte als Faustregel gilt: "nicht mischen" onclick im html mit jQuery-Funktionen. Entweder alles über das onclick-oder alles über jQuery. Ist dies eine zutreffende Beobachtung?
InformationsquelleAutor ryanmarc
Sollten Sie ein Versprechen:
Und nennen es:
InformationsquelleAutor Emjaycobs
Bitte siehe mein Beitrag hier: jQuery verzögert und Dialogfeld
Dies wird imitieren die normalen JavaScript-popup bestätigen, aber mit schönen styling in jQuery.
InformationsquelleAutor Pierre