[Resolvido] validação com javascript no JSF

7 respostas
javakid

pessoal, tenho um problema:

estou tentando validar dois campos, senha e confirma senha e estou fazendo em javascript

tentei de todo jeito...
olhem meu codigo:

js:
<![CDATA[
<script type="text/javascript" language="javascript">
				function validar_senha(){
					if(form1.senhaSecretField.value != form1.confirmarSenhaSecretField.value){
						alert("O campo confirmar senha e senha não estão iguais. Favor redigitar.");
					}
				}
			</script>
			
		]]>
jsf:
<h:form id="form1">
<h:outputText id="label_Senha" styleClass="textoazul"
						value="Senha:" />
					<h:inputSecret id="senhaSecretField" styleClass="caixatexto"
						style="background: white;" tabindex="2" 
						value="#{login.pessoaSessao.senha}" />
						
					<h:outputText id="label_confirmarSenha" styleClass="textoazul"
						rendered="#{login.pessoaSessao.primeiro}"
						value="Confirmar Senha:" />
					<h:inputSecret id="confirmarSenhaSecretField" styleClass="caixatexto"
						tabindex="2" 
						rendered="#{login.pessoaSessao.primeiro}"
						value="#{login.pessoaSessao.senha}" />
					
					<h:commandButton id="okbutton" image="/botaoOK.gif"
						value="OK" action="#{login.loginExternoAction}" 
						onclick="validar_senha()"/>
</h:form>

pq não ta pegando ?? não achei nenhum "jument coding aki..." alguem pode ajudar ?

valews

7 Respostas

Guilherme_Gomes

Todo iniciante em JSF passa por isso (eu tambem). O JSF adiciona ao seu ID um codigo que ele gera a partir da sessão. Abre essa pagina e olha o seu codigo fonte e verá que o campo não chama senhaSecretField nem confirmarSenhaSecretField. QUando digo codigo fonte, digo para clicar com o botao direito na pagina e mandar aparecer o codigo fonte dela, e não o seu codigo JSF.

T

o padrão JSF para id é:

javakid

Guilherme,

olhando diretamente o código, eu ja tava suspeitando e ele realmente fez -->

apenas adicionou o form1, ficando assim meus campos:

id=“form1:senhaSecretField”
id=“form1:confirmarSenhaSecretField”

tentei passar pelo js e tb nada!!!

if(form1:senhaSecretField.value != form1:confirmarSenhaSecretField.value)

agora sei q a referencia ta certa… mas agora piorou, pq não pega !?

T

document.getElementById(‘form1:senhaSecretField’).value

Guilherme_Gomes

Só pra acrescentar e reformar algumas ideias:

Se o seu formulário não tiver um ID, o JSF gera um.

Sempre use em javascript o document.getElementById("…") pois o simples document.form.id não vai funcionar para alguns IDs, por exemplo aqueles que contém “:”.

javakid

Obrigado, Guilherme e Thiago

funcionou! :smiley:

fabio.massa

javakid dê uma lida nesse tópico do Rafael Ponte sobre Naming Container: http://www.rponte.com.br/2008/07/01/jsf-e-naming-container/

Abraços,

Criado 5 de maio de 2009
Ultima resposta 5 de mai. de 2009
Respostas 7
Participantes 4