none
javascript acessar funcao c# RRS feed

  • 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.

    quarta-feira, 22 de agosto de 2012 19:36

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
    quarta-feira, 22 de agosto de 2012 20:57
  • 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
    quarta-feira, 22 de agosto de 2012 21:13