Sobre javascript e jsf[resolvido]

8 respostas
E

Tenho uma função javascript:

function Senha(valor)
{
	//Objeto de acesso ao campo visor
	var visor = document.getElementById("visor");
	//Objeto de acesso ao campo hidden senha
	var senha = document.getElementById("senha");
	//Acrescenta o numero digitado ao visor e a senha
	visor.value += valor;
	senha.value += valor;
}

e na pagina tenho 2 inputs:

<input type="text" name="visor" id="visor" />

<h:inputText id="senha" value="" />

Quando pressiono o botão:

<input type="button" value="1" onclick="Senha(this.value)" />

o valor 1 é colocado no

<input type="text" name="visor" id="visor" /> //Este input é html

mas não é colocado no

<h:inputText id="senha" value="" />  //Este input é jsf

Pergunto: Como faço para que o valor que o botão envia a função apareça nos dois inputs ?

8 Respostas

filipeandrep

já verificou se o jsf não altera o nome da id do elemento texto? caso esteja tudo certo já pensou em verificar o que está acontecendo utilizando um firebug para firefox ou até mesmo telas de alert com o conteudo de cada item pelo javascript?

E

O codigo html que o jsf esta gerando é:

ou seja, realmente o id esta diferente, como faria pra o jsf não mudar o id?

H

Bom dia…

No seu <h:form> atribua um id para ele.
Quando você for acessar o id do seu input por javascript, busque por idForm:idInput…

Espero ter ajudado…

Javabuntu

cara em JSF você tem que pegar também o id do seu form além do id do componente…
faça o get no id do form também e vai dar certo.

E

Bom dia, fiz assim:

<h:form id="teste"> 

<h:inputText id="teste:senha" value="" />

e deu o erro:

javax.servlet.ServletException: java.lang.IllegalArgumentException: Subsequent characters of component identifier must be a letter, a digit, an underscore ('_'), or a dash ('-')! But component identifier contains ":"

O que fazer? rs

haamilton:
Bom dia…

No seu <h:form> atribua um id para ele.
Quando você for acessar o id do seu input por javascript, busque por idForm:idInput…

Espero ter ajudado…

E

Fiz assim na função javascript :

var senha = document.getElementById("teste:senha");

Javabuntu:
cara em JSF você tem que pegar também o id do seu form além do id do componente…
faça o get no id do form também e vai dar certo.

E

Esqueci de dizer que ainda não funfou, deu o erro :

javax.servlet.ServletException: java.lang.IllegalArgumentException: Subsequent characters of component identifier must be a letter, a digit, an underscore (’_’), or a dash (’-’)! But component identifier contains “:”

edurei:
Fiz assim na função javascript :

var senha = document.getElementById("teste:senha");

Javabuntu:
cara em JSF você tem que pegar também o id do seu form além do id do componente…
faça o get no id do form também e vai dar certo.

E

o problema estava em deixar o id do compontente assim teste:senha, tem que deixar desta forma apenas na função javascript

edurei:
Tenho uma função javascript:

function Senha(valor)
{
	//Objeto de acesso ao campo visor
	var visor = document.getElementById("visor");
	//Objeto de acesso ao campo hidden senha
	var senha = document.getElementById("senha");
	//Acrescenta o numero digitado ao visor e a senha
	visor.value += valor;
	senha.value += valor;
}

e na pagina tenho 2 inputs:

&lt;input type="text" name="visor" id="visor" /&gt;

&lt;h:inputText id="senha" value="" /&gt;

Quando pressiono o botão:

&lt;input type="button" value="1" onclick="Senha(this.value)" /&gt;

o valor 1 é colocado no

&lt;input type="text" name="visor" id="visor" /&gt; //Este input é html

mas não é colocado no

&lt;h:inputText id="senha" value="" /&gt;  //Este input é jsf

Pergunto: Como faço para que o valor que o botão envia a função apareça nos dois inputs ?

Criado 18 de setembro de 2008
Ultima resposta 18 de set. de 2008
Respostas 8
Participantes 4