Usuário com melhor resposta
Funcionar evento onclick do button

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
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
-
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
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 -
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; -
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
-
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
-
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