Jsf + javascript

5 respostas
D

Boa tarde galera..

Estou tentando utilizar uma máscara em um campo do meu jsf mas não consigo.
As vezes ocorre erro e as vezes não executa nada...já tentei de várias formas...
Estou usando richfaces...

JavaScript:
<head> 
<script type="text/javascript">
oldObj   = "";
oldValor = "";
inteiro  = new RegExp("[0-9]");

function formaTel(obj)
{
  valore = obj.value;
  if(valore != oldValor || oldObj != obj){
	for(i=0;i<valore.length;i++){
	  if(!inteiro.test(valore.charAt(i))){
		valore = valore.substring(0,i) + valore.substring(i+1,valore.length);
		i = -1;
	  }
	}
	if(valore.length > 4 && valore.length < 9){
	  valore = valore.substring(0,4) + "-" + valore.substring(4,valore.length);
	}
	obj.value = valore;
	oldValor = valore;
	oldObj = obj;
  }
}
</script>
 </head>
Campo jsf:
<h:inputText id="mascara" onkeypress="formaTel(this)" value="#{mascaraHome.instance.mascara}">

Alguem tem uma sugestão?

5 Respostas

doug

Olá

Dê uma olhadinha neste link: [url=http://digitalbush.com/projects/masked-input-plugin/]Clique[/url]
Acho que isso deve te ajudar

Espero ter ajudado
Flws

D

já testei isto também mas não funciona. Estou em duvida em como chamar esta função no campo.

doug

Olá
entaum eu usei assim logo no inicio da script coloquei o aplicarFormatador("idtxtCampo", "99/99/9999") , por exemplo
Segue o código do aplicador de mascara... ele utiliza JQUERY e o plugin que passei anteriormente

//sua jsp...
//Inicio dos código javascript
&lt;script&gt;

aplicarFormatador("idtxtCampo", "99/99/9999");
//...


/**
* Aplica a formatação do campo com a máscara fornecida.
* @ param idCampo - id do campo a ser formatado
* @ param mascara - máscara de formatação
*/
function aplicarFormatador(idCampo, mascara){
	$.noConflict();
	jQuery(function($){
	   //$.mask.addPlaceholder("~","[+-]");
	   $("#" + idCampo).mask(mascara, {placeholder: " "});
	});
}

blz.. dai funciona
Qualquer dúvida pode mandar e-mail que
eu te mando um exemplo

Flwsss

D

Olá...desculpa a falta de conhecimento mas minha dúvida maior seria na chamada desta função.

peguei o seu exemplo e fiz isso:

<head>
     <script type="text/javascript" src="jquery.js"></script>
     <script type="text/javascript" src="jquery.maskedinput-1.1.4.js"></script>
   </head>
       <script>
            aplicarFormatador("formatado", "99.99");
      		function aplicarFormatador(formatado, "99.99"){  
    			$.noConflict();  
     			jQuery(function($){  
        		$("#" + formatado).mask("99.99", {placeholder: " "});  
     			});  
 	  		}
   </script>
<h:inputText id="formatado" value="#{mascaraHome.instance.formatado}" onkeypress="aplicarFormatador(this,'99.99');">

Mas não acontesse nada...como eu devo chamar a função no meu campo jsf??

vlws...;*

doug

Olá
Fiz um exemplo para vc tem uma idéia de como aplicar
no seu caso… mas é bem flexivél e pode ser
melhorado, estou colocando em anexo

&lt;body&gt;
	&lt;script type="text/javascript"&gt;
	aplicarFormatador("txtTelefone", '99.99'); 
	   
	 /** 
	 * Aplica a formatação do campo com a máscara fornecida. 
	 * @ param idCampo - id do campo a ser formatado 
	 * @ param mascara - máscara de formatação 
	 */  
	 function aplicarFormatador(idCampo, mascara){  
	     $.noConflict();  
	     jQuery(function($){  
	        //$.mask.addPlaceholder("~","[+-]");  
	        $("#" + idCampo).mask(mascara, {placeholder: " "});  
	     });  
	 } 
	&lt;/script&gt;
	&lt;input type="text" id="txtTelefone"&gt;

&lt;/body&gt;

Espero ter ajudado
Flwss

Visite em breve, Thiago’s Blog

Criado 2 de outubro de 2008
Ultima resposta 2 de out. de 2008
Respostas 5
Participantes 2