Olá pessoal, vim expor mais uma dúvida minha, quando trabalhamos com valores numericos em Java o separador decimal é o ponto “.”, entretanto, na minha aplicação preciso fazer uso de uma virgula “,” como separador decima.
Há algum mecanismo que o JSF disponibiliza par que eu cumpra a minha tarefa ou tudo o que eu posso fazer é customizar um conversor para essa tarefa?
Outra dúvida é saber como eu faria nesses campos para barrar a inserção de qualquer dado que não seja um número ou uma vírgula.
Desde já agradeço a atenção
Olá pessoal,
consegui resolver parte do meu aperreio.
Eu fiz o seguinte, utilizei um convertedor padrão JSF e setei o padão da forma que eu desejava.
Eu usei a seguinte tag
<f:convertNumber pattern="##0,00" maxFractionDigits=“2”/>
Ainda preciso saber como impedir a digitação de qualquer coisa que não seja um número ou uma virgula.
Bom, você só conseguirá isto com javascript.
Este exemplo pode lhe ajudar:
[code]function FormataValor(campo, form) {
form[campo].value = FiltraCampo(campo, form);
vr = form[campo].value;
tam = vr.length;
if ( tam <= 2 )
form[campo].value = vr ;
if ( (tam > 2) && (tam <= 5) )
form[campo].value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ;
if ( (tam >= 6) && (tam <= 8) )
form[campo].value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;
if ( (tam >= 9) && (tam <= 11) )
form[campo].value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;
if ( (tam >= 12) && (tam <= 14) )
form[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 - 2, tam ) ;
if ( (tam >= 15) && (tam <= 17) )
form[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 ) ;
}
function FiltraCampo(campo, form){
var s = "";
var cp = "";
vr = form[campo].value;
tam = vr.length;
for (i = 0; i < tam ; i++) {
if (vr.substring(i,i + 1) != "/" && vr.substring(i,i + 1) != "." && vr.substring(i,i + 1) != "," ){
s = s + vr.substring(i,i + 1);}
}
form[campo].value = s;
return cp = form[campo].value
}[/code]
:okok:
Valeu, eu queria mesmo era me livrar do javascript de uma vez por todas, mas se num tem jeito
Cara, mas nao tem nada que limita caracteres, sem que utilizemos o javascript ?
Exemplo, gostaria que certo campo “inputText” recebesse somente os caracteres ‘a’, ‘b’ e ‘c’.
[a-c] ou [A-C]