JSF + Seam + JavaScript

5 respostas
L

Olá Pessoal!

Estou tentando fazer o javascript funcionar com o JSF, mas por por algum motivo não está dando certo.
Alguem poderia me ajudar?
Este é meu javascript validacao.js:

public boolean teste(String f)
{
		if (f==''){
			alert('vazio')
		}else{ 
			alert('cheio  ' + f)
		}
}

este é o meu javascript2.xhtml (default do Seam com algumas alterações):

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:s="http://jboss.com/products/seam/taglib"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
	
	<ui:define name="head">
		<script  language="javascript" src="javascripts/validacao.js" ></script>
	</ui:define>
	
	<ui:define name="body">	
		<h1>Welcome to Seam!</h1>
		<rich:panel>
			<h:panelGrid columns="1">
				<s:div styleClass="info">
					<h:form id="userForm">
						teste: <h:inputText id="numero" value="" />
						<h:commandButton 
							id="lnkDeleteUser" 
							value="teste"
							onclick="
								var numero = document.getElementById('userForm:numero').value  ;
								teste(numero);
								" 
								action="/javascript2.xhtml" />
					</h:form>
				</s:div>
			</h:panelGrid>
		</rich:panel>
	</ui:define>
</ui:composition>

Se javascript abaixo funciona sem problemas por que o de cima não funciona?

<h:form id="userForm">
						teste: <h:inputText id="numero" value="" />
						<h:commandButton 
							id="lnkDeleteUser" 
							value="teste"
							onclick="
								if (document.getElementById('userForm:numero').value == '') alert('Olá!') ;
								else alert('tchau!');
								"
							action="/javascript.xhtml" />
					</h:form>

5 Respostas

FkJ

Faça um teste com o plugin firebug do firefox e poste a mensagem de erro.

balrog

porque vc nao retira o js do onclick, joga ele dentro de uma funcao dentro de um bloco javascript e chame a funcao criada no onclick.

L

Porque se eu quiser modificar o código, e ele for utilizado por várias páginas, eu terei que modificar página por página.

balrog

da forma que vc esta fazendo agora, eh exatamente isso o que vc vai ter que fazer …

L

Obrigado balrog, mas já consegui encontrar meu erro.
Para quem interessar o erro foi este:

function teste(String f)  
{  
        if (f==''){  
            alert('vazio')  
        }else{   
            alert('cheio  ' + f)  
        }  
}

Estamos trabalhando neste caso com javascript e não java. por isso substirui “public boolean” do java por “function” do javascript.

Criado 29 de junho de 2010
Ultima resposta 29 de jun. de 2010
Respostas 5
Participantes 3