Sobre javascript e jsf[resolvido]

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 ?

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?

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?

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…

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.

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

[quote=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…
[/quote]

Fiz assim na função javascript :

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

[quote=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.[/quote]

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 “:”

[quote=edurei]Fiz assim na função javascript :

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

[quote=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.[/quote][/quote]

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

[quote=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 ?

[/quote]