Colegas,
Estou usando o primefaces e estou com MUITA dificuldade para criar um input para valores monetários.
Baixei uma extensão do primefaces (xmlns:pe="http://primefaces.org/ui/extensions)
que me permite usar esse componente:
<pe:inputNumber id="teste" value="#{myBean.conta.valor}"
symbol="R$ " decimalSeparator="," thousandSeparator="." converter="bigDecimalConverter" />
Porém quando eu digito 135 no campo ele acrescenta ,00 e o valor fica R$ 135,00 ao invés de R$ 1,35
Pergunto: Vc pode me passar um exemplo de como fazer um input mask para valores? Qualquer sugestão é bem-vinda.
Obrigado,
Marques
Já utilizei assim também.
function mascara(o,f){
v_obj=o
v_fun=f
setTimeout("execmascara()",1)
}
function execmascara(){
v_obj.value=v_fun(v_obj.value)
}
function moeda(v){
v=v.replace(/\D/g,""); // permite digitar apenas numero
v=v.replace(/(\d{1})(\d{15})$/,"$1.$2") // coloca ponto antes dos ultimos digitos
v=v.replace(/(\d{1})(\d{11})$/,"$1.$2") // coloca ponto antes dos ultimos 11 digitos
v=v.replace(/(\d{1})(\d{8})$/,"$1.$2") // coloca ponto antes dos ultimos 8 digitos
v=v.replace(/(\d{1})(\d{5})$/,"$1.$2") // coloca ponto antes dos ultimos 5 digitos
v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2") // coloca virgula antes dos ultimos 2 digitos
return v;
}
<p:inputText .... onkeydown="mascara(this,moeda)" </p:inputText>
Funciona bem.
Coloca isso dentro do xhml dentro da tag inputText
<f:convertNumber pattern=“0.00”/>
Usei dessa forma no richfaces e funfa, acredito q funfe no prime, ainda não testei.
abraços
1 curtida
Eu uso essa extensao e nunca tive esse problema, acho que nao precisa por tanto isso de parametro.
<pe:inputNumber id="teste" value="#{myBean.conta.valor}" symbol="R$ " />
so isso ja serve, assim que uso aqui e nunca tive esse problema.
aconselho o uso do JQuery.