JSF mascaras personalizadas [RESOLVIDO]

Java

18/05/2013

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

José Junior

Curtidas 0

Melhor post

José Junior

José Junior

20/05/2013

kra consegui resolve 50% do meu problema hehe, no meu datatable fico assim :

<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>

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: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

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

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

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

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

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

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

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 ?
<h:outputScript library="javascript" name="js/jquery.js"/>
        <h:outputScript library="javascript" name="js/maskedinput.js"/>
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/
GOSTEI 0
Davi Costa

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

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

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

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

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:
<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>
http://speedydev.wordpress.com/2009/01/26/jquery-plugin-mascara-para-dinheiro/ http://jquerypriceformat.com/#download
GOSTEI 0
Davi Costa

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

Davi Costa

18/05/2013

vlw a força aew
GOSTEI 0
Davi Costa

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

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

Davi Costa

18/05/2013

saquei kra bom era isso msm q precisava flw aew
GOSTEI 0
Davi Costa

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
POSTAR