Problemas na execuçao de javascript

Trabalho com o Eclipse Helios, e nao consigo fazer funçoes em javascript, nos meus xhtml, quando possuem “for”

Nunca consegue se interpretado, e sempre dah erro, alguem já passou por isso?

Seja mais específico!
Poderia postar o js que está tentando executar?

[quote=rdsilio]Seja mais específico!
Poderia postar o js que está tentando executar?[/quote]

o que acontece é que quando eu tento executar uma funçao em javascript nao consegue interpretar, nao tenho uma experiencia com web, mas achei varias vezes essa funçao na net, pra formataçao de valores, entao creio que deva estar certo.

<script>
var moeda = {
 	
	/**
	 * retiraFormatacao
	 * 
	 * Remove a formatação de uma string de moeda e retorna um float
	 * 
	 * @param {Object} num
	 */
	 desformatar: function(num){
	   num = num.replace(".","");
	
	   num = num.replace(",",".");
	
	   return parseFloat(num);
	},

	/**
	 * formatar
	 * 
	 * Deixar um valor float no formato monetário
	 * 
	 * @param {Object} num
	 */
	formatar: function(num){
	   x = 0;
	
	   if(num<0){
	      num = Math.abs(num);
	      x = 1;
	   }
	
	   if(isNaN(num)) num = "0";
	      cents = Math.floor((num*100+0.5)%100);

	   num = Math.floor((num*100+0.5)/100).toString();
	
	   if(cents < 10) cents = "0" + cents;
	      for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	         num = num.substring(0,num.length-(4*i+3))+'.'
	               +num.substring(num.length-(4*i+3));
	
	   ret = num + ',' + cents;
	
	   if (x == 1) ret = ' - ' + ret;return ret;
	},
	
	/**
	 * arredondar
	 * 
	 * @abstract Arredonda um valor quebrado para duas casas decimais.
	 * 
	 * @param {Object} num
	 */
	arredondar: function(num){
		return Math.round(num*Math.pow(10,2))/Math.pow(10,2);
	}
 }


</script>

e geralmente acontece esse erro no for…já tentei com varias funçoes prontas, nao sei onde estou errando, mas enfim nao consegue se interpretada a linha.

E como vc está chamando essas funções na sua página?

Testei o seu código realizando uma chamada à função js e funcionou normalmente com esse exemplo:

então a criaçao dos meus objetos, eu faço tudo por jsf, ou seja, nada por html…
entao eu to passando assim

HtmlInputText texto = (HtmlInputText) app
				.createComponent(HtmlInputText.COMPONENT_TYPE);
texto.setOnkeypress("return moeda.formatar(this);");

tenho uma outra funçao que formata data, ela funciona perfeitamente, passando pelo setOnkeypress do HtmlInputText, mas essa que tem esse for, dá erro.

[quote=josivanl]então a criaçao dos meus objetos, eu faço tudo por jsf, ou seja, nada por html…
entao eu to passando assim

HtmlInputText texto = (HtmlInputText) app
				.createComponent(HtmlInputText.COMPONENT_TYPE);
texto.setOnkeypress("return moeda.formatar(this);");

tenho uma outra funçao que formata data, ela funciona perfeitamente, passando pelo setOnkeypress do HtmlInputText, mas essa que tem esse for, dá erro.[/quote]

Tente substituir o this por this.value:

HtmlInputText texto = (HtmlInputText) app
				.createComponent(HtmlInputText.COMPONENT_TYPE);
texto.setOnkeypress("return moeda.formatar(this.value);");

nada, olha o erro que acontece:

javax.servlet.ServletException: Error Parsing /Telas/TelaAdiantamento.xhtml: Error Traced[line: 185] The content of elements must consist of well-formed character data or markup.
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)

agora, o erro aconteceu no:

  if(num<0){ //linha 185