maskMoney do jQuery não funciona em ui:composition do facelets

4 respostas
G

Boa noite a todos, de forma resumida, alguém sabe me dizer pq o meu maskMoney não está funcionando? Desde já agradeço e segue as partes relevantes do código:

Techo da página principal onde é criado a view e as referências aos scritps
<f:view contentType="text/html">	
	<h:head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
		<link type="text/css" rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/principal.css"/>
		<script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/script/controle.js"/>
		<script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/script/jquery.maskMoney.js"/>		
		<title>Sistema de Pedidos Agrícolas</title>
	</h:head>
	<h:body>
		<p:layout id="paginaToda" fullPage="true" styleClass="paginatoda">		

	<!--   CONTEÚDO -->
			<p:layoutUnit id="conteudo" position="center" scrollable="true" styleClass="">
				<ui:insert name="menuPrincipal"> 
					<ui:include src="menuPrincipal.xhtml" />
				</ui:insert>
				<ui:insert name="conteudo" />
			</p:layoutUnit>
Trecho do xhtml onde se encontra o composition que contém o p:inputText e que deve ser aplicado o maskMoney
<ui:composition template="/paginas/principais/principal.xhtml">	
		<ui:define name="conteudo">
			<!-- INÍCIO DO FORM DE COTAÇÃO -->
			<h:form id="formCotacao">
								<p:inputText id="idValor" value="#{cotacaoMB.cotacao.valorProduto1}" dir="RTL" required="true" requiredMessage="Valor do produto em Pedido 1 é obrigatório!" onfocus="$('#idValor').maskMoney({showSymbol:true, symbol:'R$', decimal:',', thousands:'.'});"/>

controle.js

$(document).ready(function(){
	// Configuração para campos de Real (máscara monetária)
	$("#idValor").maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:"."});
});

4 Respostas

jaboot

É para ser utilizado no onfocus mesmo? Não é na digitação?

G

Sim mas ele deveria ser carregado no load da página, já que está dentro do $(document).ready(function(){, correto?

jaboot

Oi Garcia,

Eu estou falando de enxerido mesmo. É que todas as funções javascript e jquery que eu usei, a validação era na digitação.

Algumas validavam o valor do campo inteiro logo após a tecla digitada. É por isso que muita gente caía nas pegadinhas do onkeypress, onkeyup e onkeydown.

Mas boa sorte anyway

G

EU já usei o mesmo componente em uma página simples só para testar a sua funcionalidade e foi tudo tranquilo o problema aqui é a presença do facelets dai acho que não tou sabendo integrar jquery e facelets!

Criado 30 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 4
Participantes 2