verificação no JSF

4 respostas
M

Olá a todos! estou começando a trabalhar com sistemas web, e estou com um pequeno problema,
em um cadastro não é permitido repetir o nome, então eu precisaria validar isto e não sei como fazer,
agradeço desde já se puderem ajudar…

pensei em algo parecido com isto…
mas já testei de varias formas e não consegui exibir o alerta…

<h:outputText value="Nome"/>
	<h:inputText value="#{userRegisterBean.user.name}" 
	id="idName" required="true" maxlength="250">
	<a4j:support event="onchange" oncomplete="validate()" reRender="form" ajaxSingle="true"/>
	</h:inputText>
<h:message for="idName" styleClass="errorMessage"/>


<script>
	function validate() {
		if ( ??? ) {
		    document.getElementById('form:idName').focus();
		    alert("Já existe um registro com este nome!");
		}
	}
  </script>

4 Respostas

C

Miguel;

Sugiro que você teste a sua função JS para ver se o script é executado. Coloque em um botão, por exemplo.

E mais: na minha experiência, é necessário colocar “;” no final das chamadas JS dentro do JSF. Ficaria assim:

oncomplete="validate();"

E remova o ajaxSingle. Não sei como funciona direito no JSF 2.0 mas tive vários problemas e soluções com ele quando usava RichFaces.

Flavio_machine

Acho que o certo e vc validar no servidor, ou melhor no banco de dados.

C

Justamente. Usando faces messages.

Flavio_machine

E um conselho não misture Java Script com Jsf, de preferência para utilizar os componentes do richfaces … , o Jsf salva o estado do componente no servidor se vc alterar o componente no cliente eles vão ficar dessincronizados.

Criado 10 de outubro de 2011
Ultima resposta 10 de out. de 2011
Respostas 4
Participantes 3