Eu tenho um xhtml que no action de um botão chama um método na minha classe do EJB. Esse método retorna true ou false, gostaria de saber como eu faço para pegar esse retorno do método que está sendo chamado de um action do botão para passar esse retorna para uma função javascript.
Primeira coisa, você precisa entender que o javascript deve ser acionado a partir de algum evento na página, seja ele o carregamento da mesma ou o clique do mouse, por exemplo.
Partindo disso, você terá que ler o elemento html cujo valor deve ter sido alterado pela execução do método do EJB. Você pode acessar esses elementos utilizando técnicas de DOM, por exemplo. Para isso, precisará saber como identificar o(s) elemento(s) desejado(s).
A w3schools.com é um ótimo lugar para pesquisar sobre javascript e dom.
De resto, é só seguir a linha de raciocínio que está usando.
[quote=drsmachado]Primeira coisa, você precisa entender que o javascript deve ser acionado a partir de algum evento na página, seja ele o carregamento da mesma ou o clique do mouse, por exemplo.
Partindo disso, você terá que ler o elemento html cujo valor deve ter sido alterado pela execução do método do EJB. Você pode acessar esses elementos utilizando técnicas de DOM, por exemplo. Para isso, precisará saber como identificar o(s) elemento(s) desejado(s).
A w3schools.com é um ótimo lugar para pesquisar sobre javascript e dom.
De resto, é só seguir a linha de raciocínio que está usando.[/quote]
A sim, eu entendi. Mas com DOM eu tenho como esperar a execução do action e depois chamar uma função javascript?
[quote=drsmachado]Primeira coisa, você precisa entender que o javascript deve ser acionado a partir de algum evento na página, seja ele o carregamento da mesma ou o clique do mouse, por exemplo.
Partindo disso, você terá que ler o elemento html cujo valor deve ter sido alterado pela execução do método do EJB. Você pode acessar esses elementos utilizando técnicas de DOM, por exemplo. Para isso, precisará saber como identificar o(s) elemento(s) desejado(s).
A w3schools.com é um ótimo lugar para pesquisar sobre javascript e dom.
De resto, é só seguir a linha de raciocínio que está usando.[/quote]
Por que está errado.
O evento não é o onclick, ele é disparado no click do botão, logo, ele é disparado antes da execução do método.
O que você precisa fazer é condicionar a execução da função à existência do elemento, após o processamento do método.
[quote=drsmachado]Por que está errado.
O evento não é o onclick, ele é disparado no click do botão, logo, ele é disparado antes da execução do método.
O que você precisa fazer é condicionar a execução da função à existência do elemento, após o processamento do método.[/quote]
Mas como eu vou chamar a função se o elemento não existir. Como vou chamar a função após o processamento do método?
Cara, javascript possui if, certo?
Você pode invocar a função após o carregamento da página (evento onload, do elemento body) e pode colocar o script após a criação do elemento. Então, põe esse cérebro para funcionar.
[quote=drsmachado]Cara, javascript possui if, certo?
Você pode invocar a função após o carregamento da página (evento onload, do elemento body) e pode colocar o script após a criação do elemento. Então, põe esse cérebro para funcionar.[/quote]
Cara é exatamente isso que eu estou lhe falando, não está considerando a criação do elemento. Mesmo clicando no botão entrar o alert sempre exibi NULL.
Por que você ainda está fazendo errado.
Quem chama a function teste? Já parou para pensar que você pode inserir esse script em um elemento JSF, como um panelGrid, que possui um rendered e, só renderizar o conteúdo do mesmo caso o id não seja nulo?
Já criou um html puro, na mão, para testar se a forma como você está colocando é a forma mais correta?
A tarefa de programar consiste em pensar e codificar.