Galera já pesquisei mas não achei nenhum script que funciona com os componentes do primefaces.
Alguém aí já conseguiu fazer para quando eu apertar enter ele execute a função do tab indo para outro campo com os componentes do prime ?
abraços
Clipper na Web não por favor! Mas respondendo a sua pergunta, no GUJ tem muita coisa já sobre o assunto.
Já procurei pra baralho e nada rs Clipper na web tsc ? acho que você não é muito de pensar em usuário né ?
No link que passei tem pelo menos 5 tópicos sobre o assunto, pode valer a tentativa. Sobre o usuário sempre que posso tento convencer do que o mundo é hoje, o que ao redor funciona de um jeito e não querer de outro.
Acho que dá pra fazer com jQuery.
1- crie um listener no keypress da tecla enter. A função começa com um preventDefault() para evitar a submissão do form
2- dentro desse listener chame a função trigger do jQuery, passando o evento keypress e a tecla que você quer simular (no caso tab)
O que você botou um link do google, que por acaso eu sei usar, eu já tinha procurado e nenhum funcionou quando eu venho aqui pro guj é por que não encontrei em lugar nenhum, se quiser não quiser ajudar blz, mas também não atrapalha.
Felipe, obrigado pela resposta, você poderia exemplificar ?
eu achei esse códido até, mas não funcionou
[code]
textboxes = $(“input, select, textarea”);
if ($.browser.mozilla) {
$(textboxes).keypress (checkForEnter);
} else {
$(textboxes).keydown (checkForEnter);
}
function checkForEnter (event) {
console.log(this);
if (event.keyCode == 13) {
currentBoxNumber = textboxes.index(this);
if (textboxes[currentBoxNumber + 1] != null) {
nextBox = textboxes[currentBoxNumber + 1]
nextBox.focus();
event.preventDefault();
return false;
}
}
}[/code]
Olha só, achei esse exemplo aqui. É diferente do que eu estava pensando, pois ele não simula a digitação do tab, e sim pega o próximo elemento do form pelo indíce dele no set do jQuery.
Aparentemente funciona, mas não testei.
$('input').keydown( function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key == 13) {
e.preventDefault();
var inputs = $(this).closest('form').find(':input:visible');
inputs.eq( inputs.index(this)+ 1 ).focus();
}
});
fonte: http://stackoverflow.com/questions/2335553/jquery-how-to-catch-enter-key-and-change-event-to-tab
Valeu, boa sorte.
felipe_gdr e no xhtml como eu boto pra funcionar no <p:inputText /> ?
Não precisa por nada.
O seletor do jQuery ‘input’ já filtra todos os elementos que são input e aplica esse listener.
mas pra chamar ele dentro do meu xhtml como faço ?
<h:outputScript target="body">
$('input').keydown( function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key == 13) {
e.preventDefault();
var inputs = $(this).closest('form').find(':input:visible');
inputs.eq( inputs.index(this)+ 1 ).focus();
}
});
</h:outputscript>
é só isso mesmo.
pronto, vou tentar mais tarde. Depois posto a resposta, obrigadão :]
Você ja tentou da seguinte forma ? :
<h:form id="form">
<p:panelGrid columns="2">
<f:facet name="header">
<h:outputText value="Formulario"/>
</f:facet>
<h:outputText value="Nome :"/>
<p:inputText id="nome" onkeypress="if(event.keyCode===13){document.getElementById('form:telefone').focus();return false;}"/>
<h:outputText value="Telefone :"/>
<p:inputText id="telefone"/>
</p:panelGrid>
</h:form>