Bom dia,
Sou iniciante em JSF e estou tendo problemas ao executar o click de um botão atráves de javascript. O meu problema é que o método do meu managedBean é chamada 2 vezes. Quando eu clico diretamente no botão o método é chamado uma única vez, mas através da função do javascript o método é chamado 2 vezes.
O que estou tentando fazer é de um campo quando o usuário pressionar o “Enter” executar o click de um botão. Uma coisa que percebi é que mesmo sem colocar o onkeypress no campo h:inputText o método do meu ManagedBean é chamado.
Qualquer ajuda será muito bem vinda!!!
Segue o meu código:
Página:
<h:outputLabel value="${msgs.ean}:" style=“text-align:left;”/>
<h:inputText id=“ean” value="#{cadastroDUN14.ean}" size=“14” onkeypress=“verificarEnter(this, event);”
required=“true” requiredMessage="${msgs[‘campo.obrigatorio’]}" tabindex=“0”>
</h:inputText>
<h:commandButton id=“consEAN” value="…" action="#{cadastroDUN14.consultarEAN}"/>
</tr>
Função do js:
function verificarEnter(myfield,e)
{
var keycode;
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
keycode = e.which;
} else {
return true;
}
if (keycode == 13 && myfield.name == "dunForm:ean") {
document.getElementById('dunForm:consEAN').click();
return false;
} else if (keycode == 13 && myfield.name == "dunForm:dun14"){
document.getElementById('dunForm:salvar').click();
return false;
} else {
return true;
}
}
ManagedBean:
/**
- Método para consultar o produtor pelo código EAN.
*/
public String consultarEAN(){
… Código …
return “”
}