Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Máscara em 'MAIÚSCULO' (uppercase) Boa noite pessoal. Qual a melhor forma de se implementar no adianti uma espécie de máscara em um campo de texto (TEntry) para quando se digitar algo já ficar tudo em MAIÚSCULO ? Algo como o ".toUpperCase();" do javascript ou o "text-transform: uppercase;" do CSS......
RR
Máscara em 'MAIÚSCULO' (uppercase)  
Fechado
Boa noite pessoal.

Qual a melhor forma de se implementar no adianti uma espécie de máscara em um campo de texto (TEntry) para quando se digitar algo já ficar tudo em MAIÚSCULO ?

Algo como o ".toUpperCase();" do javascript ou o "text-transform: uppercase;" do CSS...

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (13)


RR

Resolvido !

  1. <?php
  2. $nome = new TEntry('nome');
  3. $nome->style "text-transform: uppercase";
  4. ?>
SD

Bom dia, Rafael Ramos até que funciona para eu precisava gravar no banco, quando faço select no banco ele mostra tudo minusculo. tipo o strtoupper(); queria fazer pra gravar maiusculo.

valeu.
FC

Stênio antes de salvar converta a string para maiusculo.

ex:
$objetc->campo = strtoupper($objetc->campo);
$objetc->store();
SD

Felipe Cortez, ta ae a solução eu acordei muito cedo pra terminar e nem vi, valeu mesmo pela dica.

RESOLVIDO!!!!
RR

Stênio, é verdade... só agora fui perceber que apesar da máscara ficar eu maíusculo no TEntry, ele grava no banco em minúscula! Estranho... se não me engano quando progamava em PHP puro essa função do CSS era suficiente para também gravar em maiúsculo no banco...

Mas a solução do Felipe resolve o problema! :)
RR

Consegui uma solução que não precisa colocar o "strtoupper()" toda vez que for gravar no banco.

Segui a dica do Felipe em outra dúvida que postei, e usando o componente TElement fica fácil adicionar códigos jQuery na aplicação.

Essa máscara para MAIÚSCULA usando jQuery já deixa o valor do TEntry em uppercase também na hora de gravar no banco:

<?
$nome->id = 'nome';

$script = new TElement('script');
$script->type = 'text/javascript';
$script->add('
$("#nome").keypress(function(event){
$(this).val($(this).val().toUpperCase());
});
');

$table->addRow()->addCell($script);
?>

Abraço!
RR

  1. <?php
  2. $nome->id 'nome';
  3. $script = new TElement('script');
  4. $script->type 'text/javascript';
  5. $script->add('
  6. $("#nome").keypress(function(event){
  7. $(this).val($(this).val().toUpperCase());
  8. });
  9. ');
  10. $table->addRow()->addCell($script); 
  11. ?>
RR

Pessoal, esta última máscara em jQuery apresentava uma pequena imperfeição no último caracter...

Esta aqui está perfeita:

  1. <?php
  2. $nome->id 'nome';
  3. $script = new TElement('script');
  4. $script->type 'text/javascript';
  5. $script->add('
  6. $("#nome").on("input", function(evt) {
  7. $(this).val(function (_, val) {
  8. return val.toUpperCase();
  9. });
  10. });
  11. ');
  12. $table->addRow()->addCell($script);
  13. ?>


Quem preferir os comandos jQuery em linha única:

  1. <?php
  2. $nome->id 'nome';
  3. $script = new TElement('script');
  4. $script->type 'text/javascript';
  5. $script->add('$("#nome").on("input", function(evt) { $(this).val(function (_, val) { return val.toUpperCase(); }); });');
  6. $table->addRow()->addCell($script);
  7. ?>
FM

Bom dia amigos... Aqui nenhuma solução funcionou como mascara, somente a de gravar em maiusculo.... mas como mascara mesmo, nenhuma funcionou.... não existe uma propriedade do componente TEntry que ja apareça em maiúsculo quando é digitado algo?
RR

Flavio, essa solução que postei funcionou certinho pra mim... Você testou em qual navegador?

Esse código que usei foi na versão 1 do framework, vou fazer um teste na versão 2 e posto se funcionou ou não.
RR

Flávio, posta o código do seu formulário aqui que acho que vai ser mais fácil identificar o porquê da máscara não estar funcionando.
MG

Rafael
Para resolver o último caracter é só trocar keypress por keyup e funciona perfeitamente.
AA

$e = new TEntry('nome');
$e->forceUpperCase();