Domanda

dire Let voglio richiedere all'utente prima di consentire loro di risparmiare un record. Quindi supponiamo che io ho il seguente pulsante definito nel codice:

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

Per forzare un prompt con javascript normale, ho potuto legare l'evento OnClick per il mio pulsante Salva per essere qualcosa di simile (ho potuto fare questo in Page_Load):

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

La chiamata di conferma bloccherà fino a quando l'utente effettivamente presse sul del Nessun pulsante Sì /, che è il comportamento che voglio. Se 'Sì', quindi il mio metodo btnSave_OnClick sarebbe chiamato l'utente preme.

Per la finestra di jquery che è l'equivalente, ho provato qualcosa di simile (vedi sotto). Ma il problema è che a differenza di conferma javascript (), sta andando per ottenere tutto il percorso attraverso questa funzione (displayYesNoAlert) e poi procedere nel mio metodo btnSave_OnClick sul lato C #. Ho bisogno di un modo per farlo "blocco", fino a quando l'utente preme il pulsante Sì o No, e poi tornare vero o falso in modo che il btnSave_OnClick sarà chiamato o meno chiamato a seconda risposta dell'utente.

Al momento, ho appena rinunciato e se ne andò con la conferma di javascript, mi chiedevo se ci fosse un modo per farlo.

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');

}
È stato utile?

Soluzione

Io uso una funzione di callback che viene generato quando si fa clic su un pulsante specifico come Sì. Non sarà in grado di bloccare l'esecuzione in uno script, ma hanno anche la rispondere interfaccia utente per le azioni degli utenti.

Altri suggerimenti

Questo potrebbe essere semplice come utilizzare il vostro attuale "Salva" per il fuoco fuori dalla finestra di dialogo di conferma, poi dentro la finestra di dialogo Conferma avere il "sì" pulsante di fuoco l'evento "btnSave_Click"

Penso che ho frainteso la questione in un primo momento ... questo può essere un po 'di aiuto a voi, anche se non ho provato. http://tutorialzine.com/2010/12/better-confirm- box-jquery-CSS3 /

Se avete bisogno di un solo Conferma finale di sicurezza prima di passare al codice finale come ad SAVE, quindi sicuramente questo aiuterebbe a chiamare tale funzione di risparmio () in una funzione di callback per clic del pulsante. Questo va bene.

Io ho un altro problema nel modo seguente: Voglio usare questo dialogo Conferma personalizzato in un modulo di convalida in cui ci possono essere più casi e scenari per una conferma dopo l'altro.

Se l'utente ha detto sì alla prima scatola di conferma, vogliamo presentare la seconda casella di conferma in base alle condizioni di dati modulo.

Se l'utente ancora dire di sì a questa seconda scatola di conferma, quindi ci potrebbe essere necessario presentare la casella di conferma successiva. Qui è il problema, che non è ancora possibile in questi casi ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top