Usuário com melhor resposta
Mudar evento onkeypress via Javascript

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.
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");
- Sugerido como Resposta André Luiz de Freitas segunda-feira, 18 de abril de 2011 14:47
- Marcado como Resposta Eder CostaModerator terça-feira, 31 de maio de 2011 19:13
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 -
Amigo,
Você tentou colocar assim:
A barras vão fazer a diferença.document.getElementById('texto1').onkeypress = 'formataMoeda(this,\',\',\'.\',event)';
Não esqueça de marcar como útil uma resposta que te ajude.
"A diversão é a alma do negócio" -
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.
-
<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");
- Sugerido como Resposta André Luiz de Freitas segunda-feira, 18 de abril de 2011 14:47
- Marcado como Resposta Eder CostaModerator terça-feira, 31 de maio de 2011 19:13