none
Bloquear caracteres em TextBox criada dinâmicamente!!!! RRS feed

  • Pergunta

  • Olá pessoal

    Eu preciso de mais uma ajudinha!
    Eu crio vários textboxes dinamicos em um form.
    Eu preciso na criacao setar algo do tipo onkeypress=return valida(); nos textboxes que são numeros.

    Como eu faco isso pois nao sei chamar o javascript no lado server.
    Ou tem como fazer isso no lado client utilizando textbox?

    quinta-feira, 6 de agosto de 2009 12:59

Respostas

  • Ola Heloisa,


    Na hora de criar o textbox faça isso:

    C#
    TextBox txt = new TextBox();
    
    txt.Attributes.Add("onkeypress","return valida()");

    Isto irá adicionar o atributo onkeypress em sem textbox.


    Atenciosamente

    Se a resposta for útil marque como tal

    Thiago Dorneles
    • Marcado como Resposta Heloisa Reis quarta-feira, 19 de agosto de 2009 16:58
    quinta-feira, 6 de agosto de 2009 14:29

Todas as Respostas

  • Ola,
    tenho um funçao em javascript que faz isso para mim

    function numeros()
    {
        tecla = event.keyCode;
        if (tecla >= 48 && tecla <= 57)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    dai voce escreve

    OnKeyPress="javascript:return numeros();"

    abraço,


    Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programmer but I like it.
    • Sugerido como Resposta ch_an_70 sábado, 8 de agosto de 2009 02:29
    quinta-feira, 6 de agosto de 2009 13:13
  • Olá Leonardo.

    Eu fiz da seguinte forma e não funciona!!! No lado client. Estou utilizando C#
    Ele continua permitindo inserir caracteres.

     

        <script language="javascript" type="text/javascript">
            function numeros() {
                tecla = event.keyCode;
                if (tecla >= 48 && tecla <= 57) {
                    return true;
                }
                else {
                    return false;
                }
            }
        </script>



    <asp:TextBox ID="TextBox1" runat="server" OnKeyPress="javascript:return numeros();"></asp:TextBox>

     

    quinta-feira, 6 de agosto de 2009 13:22
  • segue uma pagina exemplo

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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">
        <title></title>
        <script language="javascript" type="text/javascript">
            function numeros() {
                tecla = event.keyCode;
                if (tecla >= 48 && tecla <= 57) {
                    return true;
                }
                else {
                    return false;
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" OnKeyPress="javascript:return numeros();"></asp:TextBox>
        </div>
        </form>
    </body>
    </html>

    Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programmer but I like it.
    quinta-feira, 6 de agosto de 2009 13:43
  • Não funcionou!! Copiei e coloi seu exemplo.
    Só exclui a linha abaixo.. mas não deu certo

    O que pode ser????


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

    quinta-feira, 6 de agosto de 2009 13:52
  • Eu retirei essa linha que voce falou aqui da minha pagina de exemplo e funcionou
    quer dizer parcialmente, pois testei no firefox e ai não funcionou mais IE e Chrome deu certo

    mas vamos lah qual navegador e qual versão você está testando???

    posta o codigo seu aqui para eu dar uma analisada também


    Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programmer but I like it.
    quinta-feira, 6 de agosto de 2009 14:05
  • Ola Heloisa,


    Na hora de criar o textbox faça isso:

    C#
    TextBox txt = new TextBox();
    
    txt.Attributes.Add("onkeypress","return valida()");

    Isto irá adicionar o atributo onkeypress em sem textbox.


    Atenciosamente

    Se a resposta for útil marque como tal

    Thiago Dorneles
    • Marcado como Resposta Heloisa Reis quarta-feira, 19 de agosto de 2009 16:58
    quinta-feira, 6 de agosto de 2009 14:29

  • Essa é a tela de teste que fiz com a sua funcao!!!!



    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Teste.aspx.cs" Inherits="AdmVTP.Teste" %>
    
    <!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 numeros() {
                tecla = event.keyCode;
                if (tecla >= 48 && tecla <= 57) {
                    return true;
                }
                else {
                    return false;
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" OnKeyPress="javascript:return numeros();"></asp:TextBox>
        </div>
        </form>
    </body>
    </html>
    quinta-feira, 6 de agosto de 2009 14:58
  • Ola Heloisa,


    Você deve ter cuidado com sua função javascript.

    Ela está funcionando? Não testei, mas acho que não, pois cada navegador identifica o keycode de uma maneira diferente.


    Para pegar o keycode faça assim:

    var keyCode = e.keyCode ? e.keyCode : (e.wich ? e.wich : false);

    Assim você conseguirá pegar o keycode de quase qualquer um, e outra coisa, tem certeza que o evento que você quer é o onkeypress, teste o onkeyup ou onkeydown.


    Atenciosamente



    Thiago Dorneles
    quinta-feira, 6 de agosto de 2009 16:23
  • Thiago

    Não funciona!!! Eu criei uma function com um alert dentro (bem simples) e não chama a funcao nem no Onkeypress ou no onkeyup ou onkeydown de jeito nenhum.
    Só funciona quando uso o input!!!!
    quinta-feira, 6 de agosto de 2009 17:10
  • olá,

    vc precisa gerar os textbox pelo client ou server??

    se for por client tente..

    <script>
    var tb = document.createElement("input");
    tb.type = "text";
    tb.onkeypress = function() { alert('aqui deve chamar a função') };

    document.body.appendChild(tb);
    </script>

    se for por server

    C#
    TextBox tb = new TextBox();
    tb.Attributes.Add("onkeypress","alert('aqui deve chamar a função')");
    Page.Controls.Add(tb);


    obs: não testei os códigos :D



    Espero ter ajudado, boa sorte! Fábio Morikawa
    quinta-feira, 6 de agosto de 2009 21:08