Input Maiusculo [CONCLUIDO]

Bom dia pessoal

Eu já tinha um código que fazia que os componentes input ficassem em maiusculo. Só que desde que o chrome atualizou ontem para a versão 22 está com comportamento estranho. Ao digitar ele sempre volta para a primeira posição e no blur o texto some. Alguém mais está passando por isso?

Código do input

<p:inputText id="txtNomeRazao" styleClass="maiusculo" value="#{devedorBean.modelo.nome}" maxlength="50" size="50" />

Código do javascript

function upperText() {
    // Para tratar o colar
    $(".maiusculo").bind('paste', function(e) {
        var el = $(this);
        setTimeout(function() {
            var text = $(el).val();
            el.val(text.toUpperCase());
        }, 100);
    }); 
    // Para tratar quando é digitado
    $(".maiusculo").keypress(function() {
        var el = $(this);
        setTimeout(function() {
            var text = $(el).val();
            el.val(text.toUpperCase());
        }, 100);
    });
    $(".maiusculo").blur(function() {
        var el = $(this);
        setTimeout(function() {
            var text = $(el).val();
            el.val(text.toUpperCase());
        }, 100);
    });
}

Cara não seria bem mas fácil fazer isso:

<p:inputText id="txtNomeRazao" style="text-transform:uppercase;" value="#{devedorBean.modelo.nome}" maxlength="50" size="50" /> 
1 curtida

Na realidade existe um css que faz a função de visualmente ficar em maiúsculo, só que eu preciso que o retorno venha em maiúsculo também. Pois o text-transform:uppercase só faz o visual.

Ou fazer um classe css para fazer isso em todos os inputs da aplicação: algo do tipo

*body input .upperCase{
   text-transform:uppercase;
}

Só dar um upperCase no atributo onde vc precisar uê.

Só para você entender, esse código funciona normalmente no firefox, opera e “IE” so ó chrome que está dando falha. Pelo jeito essa atualização do chrome veio com defeito.
O que eu queria saber é se a lógica estava errada.

Não, não vejo erro na tua lógica, só acho que não precisaria fazer tudo isso ai pra resolver esse problema. Pois isso pode te trazer problema de incompatibilidade de navegadores, como já esta acontecendo, incompatibilidade na versão do jquery etc… Isso esta sendo feito em java? Se sim vc pode dar um upperCase no bean la nos methods getters and setters e pronto. Resolvido o problema.

Eu modifiquei as entidades que tem obrigação de ter o texto em maiusculo para que o mesmo no método set de cada atributo o coloque em maiúsculo.

Mas é complicado isso. Essa briga dos navegadores ainda vai longe.

Vou parar de depender de JS.

Isso ai cara. No meu ver, essa é a forma mas correta.