none
Problema com JQuery RRS feed

  • Pergunta

  • estou criando um cadastro em um dialog do Jquery:

    mas quando preencho os campos e clico em cadastrar:

    como podem ver os textbox estão indo vazios

    Segue meu codigo aspx:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Dialog._Default" %>
    <%@ Import Namespace="System.Collections.Generic" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>  
     <title>Teste Dialog</title>  
     <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all" />  
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>  
     <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>  
      
     <script language="JavaScript" type="text/javascript">
    
         var botaoFoiClicado = false;
    
         ///============================================================================
         /// <summary> Responsavel por chamar o Dialog </summary>
         /// <remarks> Autor:  Luis Gustavo
         ///           Versão: *.* </remarks>
         ///============================================================================
         $(function () {
             $('#btnCadastrar').click(function (event) {
                 if (!botaoFoiClicado) {
                     event.preventDefault();
                     $('#DialogConfirmacao').dialog('open');
                 }
             });
    
             $('#DialogConfirmacao').dialog({
                 autoOpen: false,
                 width: 350,
                 height: 300,
                 buttons: {
                     "Cadastrar": function () { botaoFoiClicado = true; $('#btnCadastrar').click(); },
                     "Cancelar": function () { botaoFoiClicado = false; $(this).dialog("close"); }
                 }
             });
         });
     </script>  
    </head>  
    <body>  
        <form id="form1" runat="server">
            <asp:Button id="btnCadastrar" runat="server" Text="Cadastrar" onclick="btnCadastrar_Click" />
            &nbsp;
            <div id="DialogConfirmacao" title="Cadastrar">  
                <asp:Label ID="lblNome" runat="server" Text="Nome"></asp:Label><br/>
                <asp:TextBox ID="txtNome" runat="server"></asp:TextBox>
                <br />
                <asp:Label ID="lblEmail" runat="server" Text="Email"></asp:Label>
                <br />
                <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
                <br />
                <br />
            </div>  
            <asp:HiddenField ID="HiddenField1" runat="server" />
        </form>
    </body>  
    </html>  


    http://luisgustavo12.wordpress.com/


    • Editado GuSouza segunda-feira, 9 de junho de 2014 18:16
    segunda-feira, 9 de junho de 2014 18:15

Respostas

  • Pra resolver o seu problema é só colocar a seguinte linha no seu Javascript:

    $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));

    Isso é necessário por causa da forma que o jQuery controla o dialog..

    Seu código ficaria mais ou menos assim:

    $(function () {
             $('#btnCadastrar').click(function (event) {
                 if (!botaoFoiClicado) {
                     event.preventDefault();
                     $('#DialogConfirmacao').dialog('open');
                 }
             });
    
             $('#DialogConfirmacao').dialog({
                 autoOpen: false,
                 width: 350,
                 height: 300,
                 buttons: {
                     "Cadastrar": function () { botaoFoiClicado = true; $('#btnCadastrar').click(); },
                     "Cancelar": function () { botaoFoiClicado = false; $(this).dialog("close"); }
                 }
             });
    
             $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));
         });

    Espero ter ajudado!

    segunda-feira, 9 de junho de 2014 18:37

Todas as Respostas

  • Cara, leva os dados para o servidor com Ajax...e use um WebMethod no code-behind

    veja esse exemplo...

    http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

    Abraço!!!

    segunda-feira, 9 de junho de 2014 18:31
  • Pra resolver o seu problema é só colocar a seguinte linha no seu Javascript:

    $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));

    Isso é necessário por causa da forma que o jQuery controla o dialog..

    Seu código ficaria mais ou menos assim:

    $(function () {
             $('#btnCadastrar').click(function (event) {
                 if (!botaoFoiClicado) {
                     event.preventDefault();
                     $('#DialogConfirmacao').dialog('open');
                 }
             });
    
             $('#DialogConfirmacao').dialog({
                 autoOpen: false,
                 width: 350,
                 height: 300,
                 buttons: {
                     "Cadastrar": function () { botaoFoiClicado = true; $('#btnCadastrar').click(); },
                     "Cancelar": function () { botaoFoiClicado = false; $(this).dialog("close"); }
                 }
             });
    
             $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));
         });

    Espero ter ajudado!

    segunda-feira, 9 de junho de 2014 18:37
  • Da uma olhada http://forums.asp.net/t/1661491.aspx?call+button+click+event+from+jquery, a resposta está destacado em verde
    • Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 10 de junho de 2014 12:22
    • Marcado como Resposta Ricardo Barbosa Cortes terça-feira, 10 de junho de 2014 14:53
    • Não Marcado como Resposta GuSouza quarta-feira, 11 de junho de 2014 18:59
    • Não Sugerido como Resposta GuSouza quarta-feira, 11 de junho de 2014 19:00
    segunda-feira, 9 de junho de 2014 18:53
  • Pra resolver o seu problema é só colocar a seguinte linha no seu Javascript:

    $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));

    Isso é necessário por causa da forma que o jQuery controla o dialog..

    Seu código ficaria mais ou menos assim:

    $(function () {
             $('#btnCadastrar').click(function (event) {
                 if (!botaoFoiClicado) {
                     event.preventDefault();
                     $('#DialogConfirmacao').dialog('open');
                 }
             });
    
             $('#DialogConfirmacao').dialog({
                 autoOpen: false,
                 width: 350,
                 height: 300,
                 buttons: {
                     "Cadastrar": function () { botaoFoiClicado = true; $('#btnCadastrar').click(); },
                     "Cancelar": function () { botaoFoiClicado = false; $(this).dialog("close"); }
                 }
             });
    
             $("#DialogConfirmacao").parent().appendTo(jQuery("form:first"));
         });

    Espero ter ajudado!

    Cara Vlw, Funcionou perfeitamente.

    http://luisgustavo12.wordpress.com/

    quarta-feira, 11 de junho de 2014 19:00