Boa tarde estou tendo um problema em colocar uma mascara em um número decimal, quero colocar 2 casas no máximo depois da vírgula
Estou usando um javascript pra poder fazer a conta desse campo vindo de BigDecimal.
<h:inputText value="" id="textValorTotal" disabled="true">
<f:convertNumber maxFractionDigits="2" ></f:convertNumber>
</h:inputText>
A biblioteca prime faces tem várias mask pronta ja se for possível utilizar.
Segue link do exemplo
http://www.primefaces.org/showcase/ui/inputMask.jsf
Priuli
Dezembro 30, 2010, 3:30pm
#3
O f:convertNumber eu utilizo só para formatar um valor decimal em labels, span e não em inputs…
para inputs use o mask do JQuery ou algo similtar…
se tiver usando o rich:faces ele já vem com uma tag para usar o JQuery. Eu uso assim:
<h:inputText id="txtValor" value="#{meuHandler.contrato.valor}" converter="moedaConverter">
<rich:jQuery selector="#txtValor"
query="maskMoney({symbol:'R$',decimal:',',thousands:'.'})"
timing="onload"/>
</h:inputText>
Muito boa mas não da não, não estou podendo utilizar primefaces nem richfaces,sistema muito acessado tanto que tem que ser tudo em javascript
Priuli
Dezembro 30, 2010, 3:44pm
#5
o rich:JQuery, e o primefaces usam javaScript e não fazem chamadas para o servidor apenas para validar este campo ele usa javascript para formatar a entrada de valor no seu input sem fazer request… mas se não quizer usar nada destes componentes jsf, vc pode usar o JQuery crú que é JavaScript (http://jquery.com/ ) para validar o seus inputs… (Procure como JQuery Mask, é bem facil de usar)
faz na mao mesmo entao…segue um tutorial
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.maskedinput.js" type="text/javascript"></script>
jQuery(function($){
$("#date").mask("99/99/9999");
$("#phone").mask("(999) 999-9999");
$("#tin").mask("99-9999999");
$("#ssn").mask("999-99-9999");
});
Fonte: http://www.ajaxianos.com.br/2009/03/mascara-para-campos-de-texto-jquery/
[quote=Mauricio de Mello]faz na mao mesmo entao…segue um tutorial
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.maskedinput.js" type="text/javascript"></script>
jQuery(function($){
$("#date").mask("99/99/9999");
$("#phone").mask("(999) 999-9999");
$("#tin").mask("99-9999999");
$("#ssn").mask("999-99-9999");
});
Fonte: http://www.ajaxianos.com.br/2009/03/mascara-para-campos-de-texto-jquery/ [/quote]
Estou tentado utilizar, já coloquei o maskedinput no meu template, coloquei a função, porém continua não funcionando…
jQuery(function($){
$("#textValorTotal").mask("999.999,99");
});
Tenho outro problema esse campo ele é disabled e vai ser setado valores nele, o usuario não digita, então esse javascript não vai funcionar.
Procura por NumberFormat e faz em java mesmo no backbean
import java.text.NumberFormat;
public class Formata {
public static void main(String[] args) {
System.out.println(NumberFormat.getCurrencyInstance().format(12345678.90));
// imprimirá R$ 12.345.678,90
}
}
feito
[quote=Mauricio de Mello]Procura por NumberFormat e faz em java mesmo no backbean
import java.text.NumberFormat;
public class Formata {
public static void main(String[] args) {
System.out.println(NumberFormat.getCurrencyInstance().format(12345678.90));
// imprimirá R$ 12.345.678,90
}
}
feito :)[/quote]
Mas o calculo do valor total estou fazendo em javascript =) ou seja não volta no backbean =) pra não fazer requisição no servido
Alguém ai pode me ajudar?