douglascrp Postado Agosto 4, 2008 Denunciar Share Postado Agosto 4, 2008 (editado) e aí pessoal, beleza?seguinte... é meu primeiro post aqui...já sei q vão me dizer "você já pesquisou no fórum?", mas já adianto... sim, já pesquisei... rso que acontece é que o código que desenvolvi consegue converter todas as letras para maiúsculas normalmente, EXCETO quando a letra tem acentos.por exemplo:se digito "a", o código converte para "A", perfeitamente, mas se digito "á", o código não faz nada.... no caso, o evento onkeypress nem é disparado.segue meu código.function upperCase(event) { var keynum; // IE if (window.event) { keynum = event.keyCode; } // Netscape/Firefox/Opera else if (event.which) { keynum = event.which; } if ((keynum >= 97 && keynum <= 122) || (keynum >= 224 && keynum <= 255)) { // converte de acordo com o valor decimal da tecla na tabela ascii keynum = keynum - 32; // IE if (window.event) { window.event.keyCode = keynum; } // firefox e outros que usam o Gecko else if (event.which) { var newEvent = document.createEvent("KeyEvents"); newEvent.initKeyEvent("keypress", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, keynum); event.preventDefault(); event.target.dispatchEvent(newEvent); } } return true; } estou chamando a função acima da seguinte forma: <input type="text" id="txtNome" name="cliente.nome" onkeypress="upperCase(event)" />agradeço desde já pela atenção de todos.abraços Editado Agosto 5, 2008 por douglascrp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Agosto 4, 2008 Denunciar Share Postado Agosto 4, 2008 Não é mais simples utilizar toUpperCase():<script type="text/javascript"> var frase = "Veja Esta Frase. ção é ô"; frase = frase.toUpperCase(); window.alert(frase); </script>Dai agora é só adaptar a vossa necessidade. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 douglascrp Postado Agosto 4, 2008 Autor Denunciar Share Postado Agosto 4, 2008 e aí jothaz... beleza?cara, já tentei isso, mas não funciona muito bem...faça um teste você mesmo, assim:crie um form e insira nele um inputno onkeypress do input, insira o código this.value=this.value.toUpperCase()deve ficar da seguinte forma:<input type="text" id="txtNome" name="cliente.nome" onkeypress="this.value=this.value.toUpperCase()" />agora tente digitar qualquer coisa nesse input, tipo "teste"... vai parecer que está tudo certo, pois ele vai converter para "TESTE".mas agora sim vem o problema.... coloque o cursor "no meio do texto", antes do "S", por exemplo, e digite qualquer letra.... o script vai converter esse caractere para maiúsculo, mas vai jogar o cursor para o fim do texto...o meu sistema já estava assim, mas quando os usuários precisam editar o texto, eles precisam apagar tudo para digitar novamente, devido a esse probleminha, e aí já viu, né, quem escuta sou eu... rsmas valeu pela respostaabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Agosto 4, 2008 Denunciar Share Postado Agosto 4, 2008 você quer a conversão em tempo real.Assim que for digitando vai ficando maiusculo!?Porque que você não converte após a digitação esta completa. Simplifica bem o código.Mas vou dar um olhada aqui se tenho algo que possa ajudá-lo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 douglascrp Postado Agosto 4, 2008 Autor Denunciar Share Postado Agosto 4, 2008 você quer a conversão em tempo real.Assim que for digitando vai ficando maiusculo!?Porque que você não converte após a digitação esta completa. Simplifica bem o código.Mas vou dar um olhada aqui se tenho algo que possa ajudá-lo.é exatamente isso... quero fazer com que enquanto o usuário digita, o texto já vá sendo alterado... eu fiz o que você falou, no caso, alterar o texto somente quando o usuário tirar o foco do campo, com o evento onblur, assim<input type="text" id="txtNome" name="cliente.nome" onblur="this.value=this.value.toUpperCase()" />e mais uma vez, o código funcionou perfeitamente...mas denovo, faça um teste... coloque esse código para rodar, mas quando terminar de digitar, pressione Enter, sem tirar o foco do input....o q acontece aqui? o form é "submetido" sem disparar o evento onblur.... rsparece até brincadeira, mas é isso q acontece...falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Agosto 4, 2008 Denunciar Share Postado Agosto 4, 2008 você é dos chatos! :o)Quer a parada rodando em real time!!! :o)Nunca fiz nada parecido mas concerteza é possível fazê-loE utilizar o onblur relamene deixa alguns furos.Eu normalmente faço este tipo de operação na consistência ou na gravação dos campos.Vou pesquisar se tenho algo assim e lhe retorno. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Agosto 4, 2008 Denunciar Share Postado Agosto 4, 2008 Ih ai brother. porque você não tenta colocar a chamada em: onKeyDown, onKeyPress e onKeyUp. De repente dispara a chamada da função.porque se não esta nem disparando a chamada a função o erro não estaria nela.você já colocou um alert dentro da função javascript e debugar o códgio. É cansativo mas se for acompanhado a execução da funão passo a passo pode ter um idéia do problema.Mas tenta o que sugeir acima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 douglascrp Postado Agosto 5, 2008 Autor Denunciar Share Postado Agosto 5, 2008 grande jothaz... cara, já tentei isso tb, mas nenhum deles dispara o evento com caracteres acentuados... com os caracteres normais, funciona.o código funciona no IE, mas no firefox não.erro não função não é, pois já testei e "debuguei" com o firebug e está funcionando perfeitamente, exceto, como já foi citado, para caracteres acentuados.bom... valeu mesmo pelo interesse em me ajudar...qualquer coisa, dá um gritoabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 douglascrp Postado Agosto 5, 2008 Autor Denunciar Share Postado Agosto 5, 2008 Resolvido... solução aqui http://gujs.com.br/forum/viewtopic.php?p=6296#6296Obrigado a todos Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
douglascrp
e aí pessoal, beleza?
seguinte... é meu primeiro post aqui...
já sei q vão me dizer "você já pesquisou no fórum?", mas já adianto... sim, já pesquisei... rs
o que acontece é que o código que desenvolvi consegue converter todas as letras para maiúsculas normalmente, EXCETO quando a letra tem acentos.
por exemplo:
se digito "a", o código converte para "A", perfeitamente, mas se digito "á", o código não faz nada.... no caso, o evento onkeypress nem é disparado.
segue meu código.
estou chamando a função acima da seguinte forma:agradeço desde já pela atenção de todos.
abraços
Editado por douglascrpLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.