JSF mascaras personalizadas [RESOLVIDO]
boa tarde pessoal, gostaria de saber sobre colocar mascaras ( cpf, rg, telefone, etc) em datatable e em caixas de texto da minha aplicação
vlw
José Junior
Curtidas 0
Melhor post
José Junior
20/05/2013
kra consegui resolve 50% do meu problema hehe, no meu datatable fico assim :
tentei usar o msm metodo no meu input text, porém ele na hora de cadastrar esta pegando o valor do 'R$' e dando erro, ja vi em mts sites uma mascara q quando o componente ganha foco ele tira a mascara, e quando ele perde o foco ele formata o valor q foi inserido no componente
<h:column>
<f:facet name="header">Preço</f:facet>
<h:outputText value="#{Produtos.preco}">
<f:convertNumber currencySymbol="R$" type="currency"/>
</h:outputText>
</h:column>
<h:inputText value="#{ProdutoCadastrar.preco}" id="txtPreco" required="true" requiredMessage="O campo preço é obrigatório !">
<f:convertNumber currencySymbol="R$" type="currency"/>
</h:inputText>
GOSTEI 1
Mais Respostas
Okabe Rintarou
18/05/2013
[quote="juniorkun"]boa tarde pessoal, gostaria de saber sobre colocar mascaras ( cpf, rg, telefone, etc) em datatable e em caixas de texto da minha aplicação
vlw
Vc está usando JSF puro, ou Primefaces/Richfaces/IceFaces?
GOSTEI 0
Okabe Rintarou
18/05/2013
O pessoal costuma usar JQuery para o h:inputText:
http://stackoverflow.com/questions/7883262/how-use-mask-in-input-field-in-jsf-2-richfaces-4
GOSTEI 0
Davi Costa
18/05/2013
Vc pode retirar "R$" da sua máscara e colocar numa label antes do campo de input, para o usuário saber que é moeda(dinheiro).
abcs
GOSTEI 0
Davi Costa
18/05/2013
kra resolvi usa sua ideia do jquery, mas nunca mexi com jquery antes, pra começa qual o lugar ideal pra colocar os arquivos q baxei pra usar o jquery? eu jogei ele no meu WEB-INF e dentro tem um pacota chamado classes, dentro desse classes tem o meu pacote jquery q por fim estão os meus arquivos e na minha pagina eu fiz a referencia assim :
<h:head>
<title>Agenda Web - Produto</title>
<h:outputScript library="javascript" name="jquery/jquery.js"/>
<h:outputScript library="javascript" name="jquery/maskedinput.js"/>
<script>
jQuery(function($){
$("#form\:txtPreco").mask("R$0,00");
});
</script>
</h:head>
GOSTEI 0
Davi Costa
18/05/2013
O Jquery é um arquivo javascript. Basta vc importar na sua página e usar.
Não coloque no WEB-INF, coloque onde vc deixa seus arquivos estáticos.
GOSTEI 0
Davi Costa
18/05/2013
arrumei a estrutura então e coloquei no msm nivel do WEB-INF uma pasta chamada js entaum a referencia para os arquivos ficariam assim ?
<h:outputScript library="javascript" name="js/jquery.js"/>
<h:outputScript library="javascript" name="js/maskedinput.js"/>
GOSTEI 0
Davi Costa
18/05/2013
[quote="juniorkun"]arrumei a estrutura então e coloquei no msm nivel do WEB-INF uma pasta chamada js entaum a referencia para os arquivos ficariam assim ?
Ele tem que estar na pasta resources/js, sendo que resources fica no mesmo nível do WEB-INF.
Veja aqui:
http://stackoverflow.com/questions/9093032/how-to-include-javascript-files-by-houtputscript
ou aqui:
http://www.mkyong.com/jsf2/how-to-include-javascript-file-in-jsf/
<h:outputScript library="javascript" name="js/jquery.js"/>
<h:outputScript library="javascript" name="js/maskedinput.js"/>
GOSTEI 0
Davi Costa
18/05/2013
se jogar a pasta js dentro do resources o caminho que tenho q indica na minha tag <h:outputScript> é o caminho q eu jah mostrei no post anterior ?
GOSTEI 0
Davi Costa
18/05/2013
[quote="juniorkun"]se jogar a pasta js dentro do resources o caminho que tenho q indica na minha tag <h:outputScript> é o caminho q eu jah mostrei no post anterior ?
Não, se vc jogar no resources/js, basta fazer:
Ex:
<h:outputScript library="js" name="common.js" />
GOSTEI 0
Davi Costa
18/05/2013
kra tah quase dando certo a minha mascara, ela já esta aparecendo, só que o problema agora é que se por ex eu coloco na mascara "R$9,99" ele so me deixa inserir 3 numeros, se eu ponho "R$99,99" so posso por 4, tem alguma forma de dar mais liberdade na hora de digitar ?
GOSTEI 0
Davi Costa
18/05/2013
Acho que dá para usar algumas expressões regulares:
http://digitalbush.com/projects/masked-input-plugin/
Faça um teste com as dicas do post acima, em especial o ?.
GOSTEI 0
Davi Costa
18/05/2013
kra por acaso achei aqui algo muito interessante em jquery pra mexer com dinheiro, uma biblioteca só pra isso e segundo as informações do link foi feita por um brasileiro, enfim topico resolvido, segue como ficou meu código o link da biblioteca pra usar mascaras de dinheiro:
http://speedydev.wordpress.com/2009/01/26/jquery-plugin-mascara-para-dinheiro/
http://jquerypriceformat.com/#download
<h:outputScript library="js" name="jquery.js"/>
<h:outputScript library="js" name="maskedinput.js"/>
<h:outputScript library="js" name="mascaradinheiro.js"/>
<script>
//<![CDATA[
jQuery(function($){
$('input.txtPreco').priceFormat({
prefix: 'R$ ',
centsSeparator: ',',
thousandsSeparator: '.'
});
});
//]]>
</script>
</h:head>
GOSTEI 0
Davi Costa
18/05/2013
Sensacional essa dica:
http://speedydev.wordpress.com/2009/01/26/jquery-plugin-mascara-para-dinheiro/
Parabéns!
GOSTEI 0
Davi Costa
18/05/2013
vlw a força aew
GOSTEI 0
Davi Costa
18/05/2013
kra to reabrindo a discução desse topico pq detectei um problema com as mascaras, eh correto na hora de mandar para a beam ele mandar a mascara junto? ou tem alguma forma de mandar somente os dados q m interessam? não sem se tem otro medoto melhor mas estou pensando em usar um converter pra tratar os dados
GOSTEI 0
Davi Costa
18/05/2013
Você pode usar o converter, ou receber a String com a máscara e tratar no próprio ManagedBean. Mas o converter é uma solução mais elegante.
GOSTEI 0
Davi Costa
18/05/2013
saquei kra bom era isso msm q precisava flw aew
GOSTEI 0
Davi Costa
18/05/2013
Acertei as tag code do tópico, tinha algumas que estavam desconfigurada.. vou atualizar o post explicando sobre elas
GOSTEI 0