Frage

Lassen Sie uns sagen, ich will den Benutzer aufzufordern, bevor es ihnen ermöglicht, einen Datensatz zu speichern. Nehmen wir also an Ich habe die folgende Schaltfläche in der Markup definiert:

<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"></asp:Button>

Um eine Eingabeaufforderung mit normalen Javascript zwingt, konnte ich das Ereignis OnClick Draht für meine Speicher-Button, so etwas zu sein (ich dies in Page_Load tun könnte):

btnSave.Attributes.Add("onclick",
    "return confirm('are you sure you want to save?');");

Der Bestätigungsanruf wird, bis der Benutzer blockiert tatsächlich drückt auf dem Ja / Nein-Tasten, die das Verhalten ich will. Drückt der Benutzer ‚Ja‘, dann wäre meine btnSave_OnClick Methode aufgerufen werden.

Für den jquery Dialog, der äquivalent ist, habe ich versucht, so etwas wie dies (siehe unten). Aber das Problem ist, dass im Gegensatz zu Javascript confirm (), es der ganzen Weg durch diese Funktion (displayYesNoAlert) bekommen los ist und dann gehen Sie in meine btnSave_OnClick Methode auf der C # Seite. Ich brauche einen Weg, es „Block“, das Ja oder Nein-Taste, bis der Benutzer drückt zu machen, und dann wahr oder falsch zurückgeben, so dass die btnSave_OnClick aufgerufen werden oder nicht aufgerufen abhängig von der Antwort des Benutzers.

Derzeit Ich gab auf und ging mit JavaScripts bestätigen, ich frage mich, ob es ein Weg, es zu tun.

function displayYesNoAlert(msg, closeFunction) {
    dialogResult = false;

    // create the dialog if it hasn't been instantiated
    if (!$("#dialog-modal").dialog('isOpen') !== true) {

        // add a div to the DOM that will store our message
        $("<div id=\"dialog-modal\" style='text-align: left;' title='Alert!'>").appendTo("body");

        $("#dialog-modal").html(msg).dialog({
            resizable: true,
            modal: true,
            position: [300, 200],
            buttons: {
                'Yes': function () {
                    dialogResult = true;
                    $(this).dialog("close");
                },
                'No': function () {
                    dialogResult = false;
                    $(this).dialog("close");
                }
            },
            close: function () {
                if (closeFunction !== undefined) {
                    closeFunction();
                }
            }
        });
    }
    $("#dialog-modal").html(msg).dialog('open');

}
War es hilfreich?

Lösung

Ich verwende eine Rückruffunktion, die ausgelöst wird, wenn sie eine bestimmte Taste wie auf Ja klicken. Sie wird die Ausführung in einem Skript nicht in der Lage zu blockieren, sondern auch über die Benutzeroberfläche reagiert auf Benutzeraktionen.

Andere Tipps

Dies könnte so einfach sein wie die aktuellen „Speicher“ drücken, um Feuer aus dem Bestätigungsdialog verwenden, dann innerhalb des Bestätigungsdialogs die Schaltfläche „Ja“ Feuer hat das „btnSave_Click“ Ereignis

Ich denke, dass ich die Frage zunächst falsch verstanden ... dies kann einige Hilfe sein, obwohl ich es nicht getestet haben. http://tutorialzine.com/2010/12/better-confirm- Box-jquery-css3 /

Wenn Sie nur eine letzte bestätigen Box müssen vor wie für SAVE zur endgültigen Code zu bewegen, dann auf jeden Fall würde dies nennen helfen, dass SAVE () Funktion in einer Callback-Funktion für Taste klicken. Das ist in Ordnung.

ich ein anderes Problem wie folgt: Ich möchte diese benutzerdefinierte bestätigen Feld in einem Formular-Validierung verwenden, wo es nach dem anderen mehrere Fälle und Szenarien für die Bestätigung sein kann.

Wenn der Benutzer die JA bestätigen Sie zunächst Feld wollen wir die zweite Bestätigungsfeld präsentieren anhand von Formulardaten Bedingungen.

Wenn der Benutzer wieder JA sagen zu diesem zweiten bestätigt Feld, dann brauchen wir möglicherweise das nächste bestätigt Feld zu präsentieren. Hier ist das Problem, das noch nicht in diesen Fällen möglich ist ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top