Ir para conteúdo
Fórum Script Brasil
  • 0

Formatação de campos


Josivan Laskoski

Pergunta

Olá pessoal.

Tenho um sistema que fiz em JSF, e crio todos os meus componentes em JSF mesmo, ou seja, em html, so tenho a chamada do meu ManagedBean, e mais nada.

Mas pesquisei e vi que não é possivel fazer a formataçao na entrada dos dados, logo preciso fazer um função em javascript para que atenda e faça essa funçao, logo nunca trabalhei com o mesmo, não sei como se deve proceder.

Gostaria de saber se tem a possibilidade de alguém me passar algum exemplo, por exemplo, formatar data, Deixar campo somente para numeros, formatar fraçao monetaria, esse tipos de formataçao (de um sistema normal de cadatros)

Grato.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

<!-- www.infinite-informatica.com.br - info@infinite-informatica.com.br -->
<html>

<head>
<title>www.infinite-informatica.com.br - info@infinite-informatica.com.br</title>
</head>

<body>
<script>
function Limpar(valor, validos) {
// retira caracteres invalidos da string
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
result += aux;
}
}
return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && tecla != 8){ tam = vr.length + 1; }

if (tecla == 8 )
   { tam = tam - 1; }

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{

if ( tam <= dec )
{ campo.value = vr; }

if ( (tam > dec) && (tam <= 5) ){
campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 6) && (tam <= 8) ){
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam );
}
if ( (tam >= 9) && (tam <= 11) ){
campo.value = vr.substr( 0, tam  - 8 ) + "." + vr.substr( tam  - 8, 3 ) +  "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 12) && (tam <= 14) ){
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 15) && (tam <= 17) ){
campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam );}
}

}

</script>
  <input type="text" name="T1" size="20" onKeydown="Formata(this,20,event,2)"></p>
</p>
</body>

</html>

Veja isso, eu coloquei como está no tópico (do link que me passou), porem como o tópico mesmo diz, copiar e colar, fiz isso no notepad, e no eclipse, mas não funciona (não tenho mta experiencia com esse tipo de desenvolvimento) sabe dizer se tenho que fazer mais alguma coisa?

Grato

Link para o comentário
Compartilhar em outros sites

  • 0
<!-- www.infinite-informatica.com.br - info@infinite-informatica.com.br -->
<html>

<head>
<title>www.infinite-informatica.com.br - info@infinite-informatica.com.br</title>
</head>

<body>
&lt;script>
function Limpar(valor, validos) {
// retira caracteres invalidos da string
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
result += aux;
}
}
return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && tecla != 8){ tam = vr.length + 1; }

if (tecla == 8 )
   { tam = tam - 1; }

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{

if ( tam <= dec )
{ campo.value = vr; }

if ( (tam > dec) && (tam <= 5) ){
campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 6) && (tam <= 8) ){
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam );
}
if ( (tam >= 9) && (tam <= 11) ){
campo.value = vr.substr( 0, tam  - 8 ) + "." + vr.substr( tam  - 8, 3 ) +  "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 12) && (tam <= 14) ){
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); }
if ( (tam >= 15) && (tam <= 17) ){
campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam );}
}

}

</script>
  <input type="text" name="T1" size="20" onKeydown="Formata(this,20,event,2)"></p>
</p>
</body>

</html>

Veja isso, eu coloquei como está no tópico (do link que me passou), porem como o tópico mesmo diz, copiar e colar, fiz isso no notepad, e no eclipse, mas não funciona (não tenho mta experiencia com esse tipo de desenvolvimento) sabe dizer se tenho que fazer mais alguma coisa?

Grato

po, eu testei aqui e formatou certinho.

me fala exatamente o que você precisa que eu te dou uma mão, beleza ?

no aguardo!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...