Inquiridor
javascript acessar funcao c#

Pergunta
-
Estou fazendo um projeto em Asp.net e c#, e estou utilizando uma funcao javascript
Pretendo fazer o seguinte:
tenho 2 textbox e irei passar valores para eles, tenho uma funcao em javascript que verifica se o falor do textbox esta dentro de uma faixa, caso nao esteja retorne uma menssagem.
este é o codigo
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!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">
<title></title>
<script language="javascript" type="text/javascript">
function verifica(TextBox, min, max) {
var valor = document.getElementById(TextBox).value;
var min;
var max;
if (valor < min || valor > max)
alert('Fora da Escala');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" onblur="verifica('TextBox1',0,100)"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" onblur="verifica('TextBox2',-5,50)"></asp:TextBox>
</div>
</form>
</body>
</html>Ate aqui tudo certo,
mas quero que quando o textbox perder o foco e a funcao javascript verifica esteja dentro do valor execute uma funcao c#, como se fosse o evento textbox changed, e se a funcao javascript verifica retornar valor fora da faixa retorne o foco para o textbox com o valor selecionado.
nao sei se isso é possivel!!
Desde ja agradeço.
Todas as Respostas
-
Talvez vc consiga da seguinte forma tucão, imagine que eu to disparando o evento de um botão.
document.getElementById('<%=btnSubmit.ClientID %>').click();
or$get('<%=btnSubmit.ClientID %>').click();
só que no seu caso seria outro evento.
Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS
- Sugerido como Resposta Vitor Mendes quinta-feira, 25 de outubro de 2012 13:33
-
Seleski, passe como parametro para a sua função o próprio TextBox (input) usando "this", que equivale a ele mesmo, com isso você ja evita de usar o getDocumentById, não tendo que se preocupar com futuras alterações de ID deste controle.
Procure validar antes se o valor digitado pelo usuário é realmente numérico. E também não se esqueça de fazer a validação no servidor (code-behind), pois o usuario mal-intencionado podera desabiltar ou alterar os valores de seu JavaScript:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %> <!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 id="Head1" runat="server"> <title></title> <script language="javascript" type="text/javascript"> function verifica(TextBox, min, max) { var valor = TextBox.value; if (isNaN(valor)) { TextBox.focus(); alert('Apenas valores numéricos'); return false; } else if (valor < min || valor > max) { TextBox.focus(); alert('Fora da Escala'); return false; } } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server" onblur="verifica(this,0,100);"> </asp:TextBox> <br /> <br /> <asp:TextBox ID="TextBox2" runat="server" onblur="verifica(this,-5,50);"> </asp:TextBox> </div> </form> </body> </html>
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Sugerido como Resposta Vitor Mendes quinta-feira, 25 de outubro de 2012 13:33