[Resolvido]Não insere mascara utilizando Jquery , RichFaces e Facelets

8 respostas
J

Boa Tarde Senhores,

Sei que tem vários tópicos falando do assunto porém não consegui resolver meu problema.

Estou utilizando JSF 2 com RichFaces e quero adicionar mascaras co0m jquery, porém estou tendo problemas.

Tenho o seguinte código:

maskInput.js – Arquivo que insiro o código javaScript.

jQuery(document).ready(function() {
	
	jQuery("#currency").maskMoney();
	// Configuração para campos de Real.
	jQuery(".real").maskMoney({
		showSymbol : true,
		symbol : "R$",
		decimal : ",",
		thousands : "."
	});

	// Configuração para mudar a precisão da máscara. Neste caso a máscara irá
	// aceitar 3 dígitos após a virgula.
	jQuery(".precisao").maskMoney({
		precision : 3
	});

	jQuery(".maskCep").mask("99999-999");
	jQuery(".maskCnpj").mask("99.999.999/9999-99");
	jQuery(".maskFone").mask("([telefone removido]");
	jQuery(".maskFax").mask("([telefone removido]");
	jQuery(".maskInscEstadual").mask("999.999.999.999");

});

Importação dos scripts no meu template

<h:head>
	<h:outputStylesheet name="css.css" library="css"/>
	<h:outputScript name="maskInput.js" library="script"/>
	<h:outputScript name="jquery.maskMoney.js" library="script"/>
	<h:outputScript name="jquery-1.7.2.js" library="script"/>
</h:head>

Página onde contém o inputText que quero formatar.

<h:inputText value="#{cota_010Bean.itemTabela.valor}"
	required="true" label="Valor" id="inputValor2"
	converter="moedaConverter" size="4"
	styleClass="real"
	disabled="#{cota_010Bean.disabledItemTabela}"/>

Me parece que a classe que coloco na tag styleClass do inputText não está assumindo o valor.

Alguém poderia me dar uma força?

8 Respostas

A

no console do seu browser, está sendo exibido algum erro?

pergunto, pois

Você importou o seu arquivo js antes do jQuery. Não vai funcionar, pois o browser não vai reconhecer a função “jQuery”.

Ademais, confirme no HTML renderizado se essa classe realmente está atribuída ao elemento.

J

No console do browser está ocorrendo o seguinte erro.

Eu mudei a sequência de importação dos scripts.

Uncaught TypeError: Object [object Object] has no method 'maskMoney'
(anonymous function)maskInput.js.jsf:3
jQuery.Callbacks.firejquery-1.7.2.js.jsf:1075
jQuery.Callbacks.self.fireWithjquery-1.7.2.js.jsf:1193
jQuery.extend.readyjquery-1.7.2.js.jsf:435
DOMContentLoaded

Obrigado.

L

O js está sendo importado corretamente ?

J

Opa,

Pessoal, obrigado pela ajuda, problema resolvido!

Eu acho que tinha algum problema no arquivo jquery-1.7.2.min .

Eu baixei novamente e fiz um teste e deu certo.

J

E ai galera, fiz um teste aqui e só funciona a mascara no IE.

No Chrome não funciona…

Alguém tem uma ideia do que pode ser?

No console não ocorre erro nenhum…

A

nicocelli:

E ai galera, fiz um teste aqui e só funciona a mascara no IE.

No Chrome não funciona…

Alguém tem uma ideia do que pode ser?

No console não ocorre erro nenhum…

só pra constar, o js do tal plugin de mascaras também deve vir antes do seu js, e depois do jQuery (que deve ser o primeiro).

Quanto ao problema, acabei de testar esse plugin no Chromium aqui e tá funcionando. Dê uma olhada na página do plugin (http://plentz.org/2009/10/29/jquery-maskmoney-plugin/), e veja o que pode estar errado no seu código.

Curioso só ter funcionado no IE, geralmente ocorre o oposto (funciona em tudo MENOS no IE) :lol: …se só funcionou nessa porcaria de browser é um sinal inequívoco que algo está errado! :stuck_out_tongue:

J

É curioso que após dar um refresh na página funciona a mascara perfeitamente.

J

Bom dia,

A primeira vez que eu entro na pagina a mascara funciona normalmente, ai depois disso eu não atualizo a pagina inteira
pois utilizo ajax para renderizar algumas partes da tela.

Quando renderiza os componentes através do ajax a mascara não assume…

Alguém passou por esse problema?

Obrigado.

Criado 26 de junho de 2012
Ultima resposta 27 de jun. de 2012
Respostas 8
Participantes 3