none
onclientclick + javascript

    Question

  • tenho a seguinte situaçao

    para validar os objetos do formulario

    só que quando valida() = true ela paz o load da pagina e nunca faz o evento onclick

    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button"
            onclientclick="return valida()" CausesValidation="False"  />

    Tuesday, February 28, 2012 11:59 PM

Answers

  • Olá,

    Tente colocar a opção AutoPostBack do Button como True;

    • Marked as answer by cesarmene Thursday, April 05, 2012 8:05 PM
    Wednesday, February 29, 2012 12:09 AM

All replies

  • Olá,

    Tente colocar a opção AutoPostBack do Button como True;

    • Marked as answer by cesarmene Thursday, April 05, 2012 8:05 PM
    Wednesday, February 29, 2012 12:09 AM
  • ele não tem esta propriedade
    Wednesday, February 29, 2012 12:15 AM
  • Olá!!

      Poderia postar o código da função javascript??
    function Valida()
    {
    }


    Thiago Rogerio
    www.thiagorogerio.com.br
    thiagorogeriobr@hotmail.com

    Wednesday, February 29, 2012 1:14 AM
  •     <script type="text/javascript" language="JavaScript">
    <!--        //

            function valida() {
                if (document.getElementById("<%=txtDescricao.ClientID%>").value == "") {
                    alert("Informe o nome.");
                    document.getElementById("<%=txtDescricao.ClientID%>").focus();
                    return false;
                } else {
                    return true;
                }
            }


            function JS_Trim(str) {
                return str.replace(/^\s+|\s+$/g, "");
            }


    //-->
        </script>
    Wednesday, February 29, 2012 9:51 AM
  • Bom dia!!

        Simulei o seu formulário com essa validação que você passou, a validação foi executada quando deixei o campo em branco e o evento onclick do server foi executado quando preenchi o campo. Segue o código que usei:

     <form id="form1" runat="server" >
        <div>
            <asp:TextBox ID="txtDescricao" runat="server"></asp:TextBox>
            <asp:Button ID="Button1"
                runat="server" Text="Button" OnClientClick="return valida();" 
                CausesValidation="false" onclick="Button1_Click" />
        </div>
        </form>

            protected void Button1_Click(object sender, EventArgs e)
            {
                Response.Write("Button1_Click");
            }


     Olha o resultado:






      Imagino que o seu formulário tenha mais campos/validações, certo??? Pode ter algum conflito com outro campo / javascript.

    Para fazer a validação você não pode usar os validators do .net??

    Thiago Rogerio
    www.thiagorogerio.com.br
    thiagorogeriobr@hotmail.com

    Wednesday, February 29, 2012 12:31 PM
  • mas no seu teste quando tem nome informado ele

    não executa o evento load da pagina

    estou usando os validators do net

    mas quando fui usar o ajaxtoolkit é brabo....

    Wednesday, February 29, 2012 12:40 PM
  • tem que ser feito isto no evento load da pagina

     if (!IsPostBack)
                {
                    Response.Write("load");
                }    
            }

    Wednesday, February 29, 2012 12:55 PM
  • Dá uma olhada como passa no load:

     protected void Page_Load(object sender, EventArgs e)
            {
                if(!Page.IsPostBack)
                    Response.Write("Page_Load <br />");
                else
                    Response.Write("Page_Load - PostBack <br />");
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                Response.Write("Button1_Click <br />");
            }

    1) Carregou a página a primeira vez e não preenchi o campo:






    2) Preenchi o campo, a validação retornou true e o postback foi realizado:


    Thiago Rogerio
    www.thiagorogerio.com.br
    thiagorogeriobr@hotmail.com

    Wednesday, February 29, 2012 1:03 PM
  • Cesar, bom dia

    sua questão foi resolvida com os posts dos colegas ? se sim, por favor marque como resposta os posts que lhe ajudaram a chegar na sua solução.


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Se for útil marque como resposta e faça um Developer feliz :)

    Monday, March 05, 2012 12:30 PM
    Moderator
  • Olá Cesar, fiz o seu exemplo e deu certo.

    Ve se é isso que vc esta precisando.

    ************************************************************ASPX***************************************************

    <%

     

    @

    Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="teste123._Default"

    %>

    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <

    html xmlns="http://www.w3.org/1999/xhtml">

    <

    head runat="server">

    <script type="text/javascript" language="JavaScript">

    function valida()

    {

    if (document.getElementById("<%=txtDescricao.ClientID%>").value == "")

    {

    alert(

    "Informe o nome.");

    document.getElementById(

    "<%=txtDescricao.ClientID%>").focus();

    return false;

    }

    else

    {

    return true;

    }

    }

    function JS_Trim(str)

    {

    return str.replace(/^\s+|\s+$/g, "");

    }

    </script>

    <title></title>

    </

    head>

    <

    body>

    <form id="form1" runat="server">

    <div>

    <asp:TextBox ID="txtDescricao" runat="server"></asp:TextBox>

    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return valida()"

    CausesValidation="False" />

     

     

    </div>

    </form>

    </

    body>

    </

     

    html>

    ***************************************************ASPX.CS*******************************************

    <!

    using

    System;

    namespace

    teste123

    {

    public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    if (!IsPostBack == true)

    {}

    else

    {

    }

    }

    }


    CASO A RESPOSTA TENHA AJUDADO FAVOR MARCAR COMO RESPONDIDA.

    Monday, March 05, 2012 1:41 PM