none
ventana de confimacion de datos,en formulario via post

    Pregunta

  • Hola nuevamente.

    Ahora estoy enviado datos por un formulario via post al controlador y necesito crear un cuadro o popup de confirmación de envió de estos datos. o  sea que muestre una ventana con un texto de confirmación con un si y no(si es no se queda en la pagina aspx y si es si va al controlador(al publicactionresult con los datos).

    puede ser javascript(no me manejo mucho en ello).

    estoy programando en c#, mvc 2.0

     

    saludos y gracias.

    martes, 17 de mayo de 2011 4:13

Respuestas

  • Buenas!

    Una forma sencilla, y elegante, es no poner boton de submit en el <form> y gestionar el submit a través de un botón, de un enlace, o de lo que quieras. Imagina que tienes un <form> y un <a> para enviar el form (podría ser un botón no hay problema):

    <form id="myform" action="..." method="post">
      <!-- Controles -->
    </form>
    <a href="#" id="lnkEnviar">Enviar datos"</a>
    

    Luego puedes colocar un poco de código javascript, para que en el click del enlace se envíe el formulario, previa confirmación. Usando jQuery quedaría así:

    $(document).ready(function() {
      $("#lnkEnviar").click() {
        var ok = confirm("Seguro que quieres enviar los datos?");
       if (ok) { $("#myform").submit(); }
      }
    });
    

    Nota: El método confirm de javascript muestra un msgbox con dos opciones (Sí / No) y devuelve true o false en función de la opción pulsada.

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Propuesto como respuesta Agre01 martes, 17 de mayo de 2011 16:24
    • Marcado como respuesta Eder CostaOwner miércoles, 10 de octubre de 2012 12:51
    martes, 17 de mayo de 2011 6:16
  • Ahora me funciono, puse el codigo javascript asi:

    <input type="button" id="lnkEnviar" value="Continuar" name="boton" style="width: 82px;" />
    
    <script type="text/javascript">
      $("#lnkEnviar").click(function() 
       {
        var ok = confirm("Seguro que quieres enviar los datos? \nDespues no podran ser modificados.");
        if (ok) { $("#myform").submit(); }
       }
      );
    </script>
    

    Gracias por la ayuda.

    Saludos.
    • Marcado como respuesta Eder CostaOwner miércoles, 10 de octubre de 2012 12:51
    miércoles, 18 de mayo de 2011 22:20

Todas las respuestas

  • Buenas!

    Una forma sencilla, y elegante, es no poner boton de submit en el <form> y gestionar el submit a través de un botón, de un enlace, o de lo que quieras. Imagina que tienes un <form> y un <a> para enviar el form (podría ser un botón no hay problema):

    <form id="myform" action="..." method="post">
      <!-- Controles -->
    </form>
    <a href="#" id="lnkEnviar">Enviar datos"</a>
    

    Luego puedes colocar un poco de código javascript, para que en el click del enlace se envíe el formulario, previa confirmación. Usando jQuery quedaría así:

    $(document).ready(function() {
      $("#lnkEnviar").click() {
        var ok = confirm("Seguro que quieres enviar los datos?");
       if (ok) { $("#myform").submit(); }
      }
    });
    

    Nota: El método confirm de javascript muestra un msgbox con dos opciones (Sí / No) y devuelve true o false en función de la opción pulsada.

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Propuesto como respuesta Agre01 martes, 17 de mayo de 2011 16:24
    • Marcado como respuesta Eder CostaOwner miércoles, 10 de octubre de 2012 12:51
    martes, 17 de mayo de 2011 6:16
  • Hola, me aparece la ventana de confirmacion, pero cuando se carga la pagina, antes de deplegargarla y sin apretar el boton "continuar".

    tengo el codigo asi:

     

    <asp:Content1>titulo</>
    
    <asp:Content2>contenido
    
    <form action="<%= Url.Action("Perfil","Home") %>" method="post" id="formPerfil">
    
    <%-- controles html --%>
    
    </form>
    
    <%--el boton--%>
    
    <input type="submit" class="botonir" value="Continuar" name="boton" style="width: 82px;" />
    
    <%--tambien probe con--%>
    
    <a href="#" id"boton">Continuar</a>
    
    <%-- y --%>
    
    <input type="button" class="botonir" value="Continuar" name="boton" style="width: 82px;" />
    
    <%--y el javascript--%>
    
    <%--comente el $(document).ready(function() pensando que con eso me daba error al mandar el mensaje al cargar la pagina pero no.
    
    --%>
    
    <script type="text/javascript">
      //$(document).ready(function() {
      $("#boton").click();
      {
        var ok = confirm("Seguro que quieres enviar los datos?");
        if (ok) { $("#formPerfil").submit(); }
      };
      //});
      </script>
    
    </asp:Content2>

     

    y cuando pogo cancelar, luego click en continuar no pasa nada.

    que estoy haciendo mal?

    saludos


    miércoles, 18 de mayo de 2011 14:12
  • Buenas!

    El botón que tienes no debería ser un <input type="submit" /> sino un <input type="button" /> para que no intente submitear el formulario.

    Lo que no veo es porque no te funciona la prueba usando el tag <a>. Sólo se me ocurre una cosa: no se si ha sido un error al copiar el código, pero en el <a> que has puesto en el foro, tienes id"boton", falta el = (id="boton"). Si lo tienes así en tu código real no te funcionará.

    Ya me dirás! ;-)

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    miércoles, 18 de mayo de 2011 14:38
  • Ahora me funciono, puse el codigo javascript asi:

    <input type="button" id="lnkEnviar" value="Continuar" name="boton" style="width: 82px;" />
    
    <script type="text/javascript">
      $("#lnkEnviar").click(function() 
       {
        var ok = confirm("Seguro que quieres enviar los datos? \nDespues no podran ser modificados.");
        if (ok) { $("#myform").submit(); }
       }
      );
    </script>
    

    Gracias por la ayuda.

    Saludos.
    • Marcado como respuesta Eder CostaOwner miércoles, 10 de octubre de 2012 12:51
    miércoles, 18 de mayo de 2011 22:20