Pregunta

Vamos a decir que quiero pedir al usuario antes de que les permite ahorrar un registro. Así que vamos a suponer que tengo el siguiente botón definido en el marcado:

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

Para forzar una pronta con javascript normal, pude conectar el evento OnClick para mi botón de guardar para ser algo como esto (que podría hacer esto en Page_Load):

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

La confirmación de llamada se bloqueará hasta que el usuario realmente hace presión sobre la Sin botones Sí /, que es el comportamiento que quiero. Si el usuario pulsa 'sí', entonces mi método btnSave_OnClick serían llamados.

En el cuadro de diálogo jQuery que es el equivalente, he intentado algo como esto (véase más adelante). Pero el problema es que a diferencia de confirmar Javascript (), que va a obtener todo el camino a través de esta función (displayYesNoAlert) y luego proceder en mi método btnSave_OnClick en el lado C #. Necesito una manera para que sea "bloque", hasta que el usuario pulsa el botón Sí o No, y luego regresar verdadera o falsa por lo que el btnSave_OnClick se llama o no llama dependiendo de la respuesta del usuario.

En la actualidad, sólo se rindió y se fue con confirmación de Javascript, me preguntaba si había una manera de hacerlo.

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

}
¿Fue útil?

Solución

Yo uso una función de devolución de llamada que se plantea cuando se haga clic en un botón específico como Sí. Usted no será capaz de bloquear la ejecución de un script, pero también tienen la interfaz de usuario responde a las acciones del usuario.

Otros consejos

Esto podría ser tan simple como el uso de su actual "Guardar" para llamas más allá de diálogo de confirmación, a continuación, en el interior de la confirmación de diálogo tienen el "sí" botón de disparo del evento "btnSave_Click"

Creo que no he entendido bien la pregunta en un primer momento ... esto puede ser un poco de ayuda para usted, aunque no lo he probado. http://tutorialzine.com/2010/12/better-confirm- cuadro-jquery-css3 /

Si necesita sólo una confirmación final de la caja antes de pasar al código final como para SAVE, entonces definitivamente esto ayudaría a llamar a esa función GUARDAR () en una función de devolución de llamada de clic de botón. Eso está muy bien.

Tengo otro problema de la siguiente manera: Quiero utilizar este cuadro de confirmar personalizado en una validación de formularios en los que puede haber múltiples casos y escenarios para una confirmación después de otra.

Si el usuario dijo que sí a la primera casilla de confirmación, queremos dar a conocer la segunda casilla de confirmación sobre la base de condiciones formulario de datos.

Si el usuario nuevo decir SÍ a esta segunda casilla de confirmación, entonces puede que tenga que presentar el siguiente cuadro de confirmación. Aquí está el problema, que aún no es posible en estos casos ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top