none
Funcionar evento onclick do button RRS feed

  • Pergunta

  • Uso VS2010, aspnet4, C# e jQuery

    Tenho o Button:   <asp:Button ID="BtnSalvar" runat="server" Text="Confirmar"  OnClientClick="ValidaText();" onclick="BtnSalvar_Click" />

    Tenho o textbox:  <asp:TextBox ID="TextRazaoSocial" runat="server" </asp:TextBox>

    function ValidaText() {
    var TextRazaoSocialvalue = $('#<%= TextRazaoSocial.ClientID %>').val();
    if (!TextRazaoSocialvalue || TextRazaoSocialvalue == "" || TextRazaoSocialvalue == null) {
          alert("Digite a Razão Social");
          $('#<%= TextRazaoSocial.ClientID %>').focus();
          return false;}

    Gostaria que no Button o evento  onclick="BtnSalvar_Click" só funcionasse se o OnClientClick="ValidaText();" retornasse true

    quinta-feira, 19 de abril de 2012 18:36

Respostas

  • Boa tarde,

    a princípio não me atentei ao contexto. No seu caso o mais correto seria utilizar um Custom Validator. Com ele você pode especificar uma função JavaScript para a validação.

    segue a função JavaScript:

    function validarCampoVazio(oSrc, args) {
       args.IsValid = (args.Value.length > 0);
    }

    e o validator:

    <asp:CustomValidator id="clvRazaoSocial" runat="server" 
      ControlToValidate = "TextRazaoSocial"
      ErrorMessage = "Informe a razão social."
      ClientValidationFunction="validarCampoVazio" >
    </asp:CustomValidator>

    Utilizei aqui um Custom Validor pois entendo que você deseja utilizar seu próprio método de validação, mas no seu caso um simples RequiredFieldValidator funcionaria.

    Mais informações: http://msdn.microsoft.com/en-us/library/f5db6z8k.aspx 

    Abraços,


    Daniel Cheida de Oliveira

    • Sugerido como Resposta Daniel Cheida quinta-feira, 19 de abril de 2012 19:38
    • Marcado como Resposta Álvaro Luiz quinta-feira, 19 de abril de 2012 20:06
    quinta-feira, 19 de abril de 2012 19:38
  • Desculpa, no seu asp:Button precisa mudar TAMBÉM, precisa incluir o return na frente da chamada do método ValidaText(), falha nossa:

    <asp:Button ID="BtnSalvar" runat="server" Text="Confirmar"  OnClientClick="return ValidaText();" onclick="BtnSalvar_Click" />


    Espero ter ajudado. Se a dica foi útil favor marcar como tal.

    Luiz Carlos Pereira da Silva

    LTPA IT SOLUTIONS
    www.ltpa.com.br | twitter: @LUIZconsultorTI | skype: luiz.dev

    • Marcado como Resposta Álvaro Luiz quinta-feira, 19 de abril de 2012 20:06
    quinta-feira, 19 de abril de 2012 19:51

Todas as Respostas

  • Tente isso:

    function ValidaText() {
        var TextRazaoSocialvalue = $('#<%= TextRazaoSocial.ClientID %>').val();
        if (!TextRazaoSocialvalue || TextRazaoSocialvalue == "" || TextRazaoSocialvalue == null) {
            alert("Digite a Razão Social");
            $('#<%= TextRazaoSocial.ClientID %>').focus();
            return false;}
        else 
        { 
            return true;
        }
    }


    Espero ter ajudado. Se a dica foi útil favor marcar como tal.

    Luiz Carlos Pereira da Silva

    LTPA IT SOLUTIONS
    www.ltpa.com.br | twitter: @LUIZconsultorTI | skype: luiz.dev

    quinta-feira, 19 de abril de 2012 19:01
  • Daniel, fiz assim mas não funcionou, e como o Luiz sugeriu tbm não

     if (!TextRazaoSocialvalue || TextRazaoSocialvalue == "" || TextRazaoSocialvalue == null) {
                    alert("Digite a Razão Social");
                    $('#<%= TextRazaoSocial.ClientID %>').focus();
                    return false;
                    event.cancelBubble = true;              
                }

                if (!TextNomeFantasiavalue || TextNomeFantasiavalue == "" || TextNomeFantasiavalue == null) {
                    alert("Digite o Nome Fantasia");
                    $('#<%= TextNomeFantasia.ClientID %>').focus();
                    return false;
                    event.cancelBubble = true;

    quinta-feira, 19 de abril de 2012 19:17
  • Boa tarde,

    a princípio não me atentei ao contexto. No seu caso o mais correto seria utilizar um Custom Validator. Com ele você pode especificar uma função JavaScript para a validação.

    segue a função JavaScript:

    function validarCampoVazio(oSrc, args) {
       args.IsValid = (args.Value.length > 0);
    }

    e o validator:

    <asp:CustomValidator id="clvRazaoSocial" runat="server" 
      ControlToValidate = "TextRazaoSocial"
      ErrorMessage = "Informe a razão social."
      ClientValidationFunction="validarCampoVazio" >
    </asp:CustomValidator>

    Utilizei aqui um Custom Validor pois entendo que você deseja utilizar seu próprio método de validação, mas no seu caso um simples RequiredFieldValidator funcionaria.

    Mais informações: http://msdn.microsoft.com/en-us/library/f5db6z8k.aspx 

    Abraços,


    Daniel Cheida de Oliveira

    • Sugerido como Resposta Daniel Cheida quinta-feira, 19 de abril de 2012 19:38
    • Marcado como Resposta Álvaro Luiz quinta-feira, 19 de abril de 2012 20:06
    quinta-feira, 19 de abril de 2012 19:38
  • Daniel, fiz assim mas não funcionou, e como o Luiz sugeriu tbm não

     if (!TextRazaoSocialvalue || TextRazaoSocialvalue == "" || TextRazaoSocialvalue == null) {
                    alert("Digite a Razão Social");
                    $('#<%= TextRazaoSocial.ClientID %>').focus();
                    return false;
                    event.cancelBubble = true;              
                }

                if (!TextNomeFantasiavalue || TextNomeFantasiavalue == "" || TextNomeFantasiavalue == null) {
                    alert("Digite o Nome Fantasia");
                    $('#<%= TextNomeFantasia.ClientID %>').focus();
                    return false;
                    event.cancelBubble = true;

    Não funcionou pois a linha de código foi inserida após o return. Mas segue abaixo uma alternativa muito mais adequada.

    Abraços,


    Daniel Cheida de Oliveira

    quinta-feira, 19 de abril de 2012 19:39
  • Desculpa, no seu asp:Button precisa mudar TAMBÉM, precisa incluir o return na frente da chamada do método ValidaText(), falha nossa:

    <asp:Button ID="BtnSalvar" runat="server" Text="Confirmar"  OnClientClick="return ValidaText();" onclick="BtnSalvar_Click" />


    Espero ter ajudado. Se a dica foi útil favor marcar como tal.

    Luiz Carlos Pereira da Silva

    LTPA IT SOLUTIONS
    www.ltpa.com.br | twitter: @LUIZconsultorTI | skype: luiz.dev

    • Marcado como Resposta Álvaro Luiz quinta-feira, 19 de abril de 2012 20:06
    quinta-feira, 19 de abril de 2012 19:51