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