none
Mudar evento onkeypress via Javascript RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando alterar o conteúdo do evento onkeypress de um input text conforme o usuário selecionar um item.

    Ao usuário selecionar uma radio gostaria de mudar a função padrão do input text, e quando mudar o radio para a outra opção, reescrevo a função.

    O que eu tentei fazer foi o seguinte... na função onclick do radio eu coloco informo a nova função, conforme abaixo:

    document.getElementById('texto1').onkeypress = 'formataMoeda(this,',','.',event)';
    

    O problema é que o navegador da erro na interpretação do código, já que no meio da string onde estou falando qual a nova função do onkeypress contem apóstrofe, caso eu tire as apóstrofes o navegador não apresenta erro, porem não executa a função.

    Eu também tentei concatenar o texto trocando as apóstrofes por código da apóstrofe, mas mesmo assim não funcionou.

     

    Por favor, se alguém souber alguma forma de contornar isso ficarei muito grato.

     

    Obrigado.

     

    Croda.

    quinta-feira, 17 de março de 2011 22:29

Respostas

  • <p>Se você puder, tente adicionar no codeBehind da sua pagina um evento para troca de valores </p><p>do radioButton, lá você pode fazer da seguinte maneira:</p>
    
    seuTextBox.Attributes.Clear();
    if(valorDoSeuRadio=="X"){ 
                       seuTextBox.Attributes.Add("onkeypress", "sua funcao x");
    }
    else{         
     seuTextBox.Attributes.Add("onkeypress", "sua funcao y");
    

     

    segunda-feira, 18 de abril de 2011 14:46

Todas as Respostas

  • Entendi sua ideia.

    Eu faria assim,  criaria apenas uma função JS, sendo que dependendo do valor do Radio ela teria uma ação diferente. mais ou menos assim:

    functionminhaFuncao()
    {
      var Radio = $('.Radio').val()
      if (Radio == '1')
       {
        //acao 1
       }
    
      if (Radio == '2')
       {
        //acao 2
       }
    }
    

    Caio Vitullo
    domingo, 20 de março de 2011 15:39
  • Amigo,

    Você tentou colocar assim:

    document.getElementById('texto1').onkeypress = 'formataMoeda(this,\',\',\'.\',event)';
    
    A barras vão fazer a diferença.


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"
    terça-feira, 22 de março de 2011 02:01
  • Lucas,

    Utilizando as barras a função fica perfeita, porem ele apresenta corretamente mas não executa quando hà a digitação no elemento que recebeu a alteração da função.

    Sabe me informar se existe outra forma de fixar outro método no onkeypress sem ser como informado acima?

     

    Desde já agradeço a ajuda.

     

    Att,

    Croda.

    segunda-feira, 18 de abril de 2011 14:13
  • <p>Se você puder, tente adicionar no codeBehind da sua pagina um evento para troca de valores </p><p>do radioButton, lá você pode fazer da seguinte maneira:</p>
    
    seuTextBox.Attributes.Clear();
    if(valorDoSeuRadio=="X"){ 
                       seuTextBox.Attributes.Add("onkeypress", "sua funcao x");
    }
    else{         
     seuTextBox.Attributes.Add("onkeypress", "sua funcao y");
    

     

    segunda-feira, 18 de abril de 2011 14:46