none
Problemas al utilizar jConfirm de jQuery con ASP.NET RRS feed

  • Pregunta

  • Buenos días, 

    Me encuentro con un extraño problema al utilizar el plugin jConfirm. He intentado sustituir la función javascript "confirm()" tradicional con la de jQuery para darle más estética al programa, pero cuando se ejecuta, se muestra solo un instante, y en seguida, se genera el postback, es decir que no espera que el usuario decida la acción afirmativa o negativa.

    Si pongo el código con la función javascript tradicional me funciona correctamente.

    El código que utilizo es:

    <asp:LinkButton ID="btnEnviarEmail" runat="server" CssClass="btn btn-lg btn-success" OnClientClick="return jConfirm('¿Seguro que quiere mandar el mensaje?,'Prueba');" >
    Enviar Email
    </asp:LinkButton>

    ¿Alguna sugerencia? ¿Alguien sabe cual es el problema?

    Muchas gracias


    jueves, 7 de abril de 2016 12:19

Respuestas

Todas las respuestas

  • hola

    seguramente el jConfirm este ejecutando de forma asincrona por eso no detiene el OnClientClick

     <script>

      function Confirmar(){

         jConfirm('¿Seguro que quiere mandar el mensaje?,'Prueba',  function (answer) {
                        if (answer) {
                           __doPostBack(..); //aqui configuras el post al evento del linkbutton
                        }
                    });

         return false;

      }

    </script>

    <asp:LinkButton ID="btnEnviarEmail" runat="server" CssClass="btn btn-lg btn-success" OnClientClick="return Confirmar();" > Enviar Email </asp:LinkButton>

    como veras el jconfirm tiene un function donde recibe la respuesta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 7 de abril de 2016 12:50
  • Muchas gracias Leandro por tu rápida respuesta. Seguramente sea ese el problema. Simplemente te ruego que me indiques como configuro el post del evento, teniendo en cuenta que la función que se ejecuta cuando se pulsa el link es la propia de ASP:

    Protected Sub btnEnviarEmail_Click(sender As Object, e As EventArgs) Handles btnEnviarEmail.Click

    Es decir, ¿Que pongo dentro de la función __doPostBack?

    if (answer) {
    __doPostBack(......);
    }

    Para que sirva de referencia, cuando utilizo confirm() en vez de jConfirm():

    <asp:LinkButton ID="btnEnviarEmail" runat="server" CssClass="btn btn-lg btn-success"

    OnClientClick="return confirm('Estás seguro que quieres mandar el eMail?')">

    Enviar Email

    </asp:LinkButton>


    El código HTML generado es:

    <a onclick="return confirm(&#39;Estás seguro que quieres mandar el eMail?&#39;,&#39;Prueba&#39;);"

    id="CPH_Cuerpo_btnEnviarEmail" class="btn btn-lg btn-success"

    href="javascript:__doPostBack(&#39;ctl00$CPH_Cuerpo$btnEnviarEmail&#39;,&#39;&#39;)">

    Enviar Email

    </a>


    Muchas gracias Leandro por anticipado,

    Antonio

    viernes, 8 de abril de 2016 11:21
  • hola

    >>como configuro el post del evento, teniendo en cuenta que la función que se ejecuta

    Función __doPostBack

    en estos casos lo mejor seria no usar eventos sino jquery con ajax

    Calling ASP.Net WebMethod using jQuery AJAX

    invocando desde codigo cliente un webmethod

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 8 de abril de 2016 12:51
  • ¡Muchas gracias Leandro! Me ha sido de gran ayuda.
    viernes, 8 de abril de 2016 20:07