Pessoal, tudo bem?
Estou tentando ajustar um código para fazer a tecla enter virar tab na aplicação do projeto, funciona legal no IE e Chrome mas no Fire fox não.
Trata-se de um form simples, com 2 inputtexts e um comand button
O problema é que estou me perdendo mais na mudança do código de JS para usar no JSF.
Como poderia ajustar para o FF aceitar o returnValue = true que nos outros browser aceitam?
*Detalhe: O objetivo é fazer com que o enter acione o action do commandButton do form.
-- login.xhtml --
<h:form id="admin_form" >
<h:inputText id="admin_username" value="#{credentials.username}" onkeydown="tabOnEnter(this,event)"/>
<h:panelGrid columns="3">
<h:outputLabel for="password" style="padding-left:40px">#{messages['login.label.senha']}:</h:outputLabel>
<h:inputSecret id="password" value="${credentials.password}" onkeydown="tabOnEnter(this,event)" onkeypress="submete(this, evt)"/>
<h:commandButton action="#{identity.login}"
image="img/btnLogin.gif" style="padding-left:4px" >
<f:setPropertyActionListener
target="#{authenticator.usarLoginSenha}" value="#{true}" />
</h:commandButton>
</h:panelGrid>
</h:form>
//<![CDATA[
function getNextElement(field, evt) {
var form = field.form;
for ( var e = 0; e < form.elements.length; e++) {
if (field == form.elements[e]) {
break;
}
}
[color=olive] if (e == 2) {
evt.returnValue = true;
}[/color]
return form.elements[++e % form.elements.length];
}
function tabOnEnter(field, evt) {
if (evt.keyCode == 13) {
if (evt.preventDefault) {
evt.preventDefault();
} else if (evt.stopPropagation) {
evt.stopPropagation();
} else {
evt.returnValue = false;
}
getNextElement(field, evt).focus();
return false;
} else {
return true;
}
}
//]]>