Ir para próximo campo{ Focus() } no formulário quando chegar no limite do maxlength
Boa tarde!
Criei um método que percorre todos os campos do formulário e aplica a regra de quando chegar no limite do campo, aplica focus no próximo campo. Bem legal para formulários, segue:
window.onload = function(){
var allEl = $("#content input, #content textarea, #content select, #content checkbox");
allEl.each(function(){
var campoAtual = $(this);
var maxlength = campoAtual.attr("maxlength");
if (!isEmpty(maxlength)){
$(this).keyup(function () {
//Pega posição do focus do campo, quando chegar no ultimo focus, entra na rotina para ir para proximo campo
var positionFocus = this.selectionStart;
//Se chegar no limite
if (maxlength == campoAtual.val().length && positionFocus == maxlength ){
var nomeCampoAtual = campoAtual.attr("name");
var encontrouCampo = false;
var idxProxCampo = 0;
for (var i=0; i < allEl.length; i++) {
if (!encontrouCampo){
if ( nomeCampoAtual == allEl.eq(i).attr('name') ){
idxProxCampo = i+1;
encontrouCampo = true;
}
}
if (encontrouCampo){
var tagPai = allEl.eq(idxProxCampo).parent();
if (tagPai.is(':visible')){
break;
//Se o campo não tiver visivel soma +1 para verificar o proximo campo da lista
}else{
idxProxCampo = idxProxCampo + 1;
}
}
};
allEl.eq(idxProxCampo).focus();
}
});
}
});
}Discussão (2)
Carregando comentários...