Amigos estou com um conflito com o recurso SHIFT+TAB, que retrocede o cursor na navegação da tela. Quando o cursor retrocede para um desses campos que saltam automaticamente, ele volta para o campo posterior, pois o script de “saltar campo” entende que o campo está preenchido e não permite que o cursor lá permaneça; essa função em conjunto com o evento onkeyup acontece este problema. Alguém sabe como resolvo isso?
Nao daria pra vc detectar quando o usuario preciona shift + tab, e setar alguma flag que vai evitar o cursor de pular de volta pro campo posterior??
Por exemplo, Para pegar o shift+tab no the onkeyup event, vc pode fazer alguma coisa desse tipo:
Ai na funcao que faz o cursos salta pro proximo campo, vc verifica se _mudaCampo eh “true” se for vc salta pro proximo campo, se nao for, vc seta _mudaCampo = true e nao faz nada.
function mudaCampo(campoAtual, tamTotal, campoProx) {
if(_mudaCampo == false) {
_mudaCampo = true; // muda para true porque vc vai querer mudar de campo apos editar.
return;
}
// faz o que tem que fazer na funcao e muda de campo.
}
Eu nao sei a implementacao do seu codigo, mas voce tera que definir essa flag em algum lugar que seja visivel onde ela sera utilizada, de repente ate funciona se vc passar como parametro para a funcao mudaCampo, por exemplo.
//Daniel
R
RenatoFigueredo
Amigo obrigado por responder, seguinte fiz da seguinte forma:
porém agora ele não muda o foco quando edita todos os campos para próximo.
J
jaboot
Renato,
Já utilizou JQuery? Ele é ótimo pra fezer isso que você precisa.
Abraços
W
windsofhell
RenatoFigueredo:
porém agora ele não muda o foco quando edita todos os campos para próximo.
Ola,
Nao entendi o que voce quis dizer. Que nao esta mudando o foco quando vc quer mudar pro proximo campo??
Debuga com o firebug e verifica se o seu codigo esta chegando ate
campoProx.focus();
Isso que vc a mudanca pro proximo campo nao eh??
//Daniel
R
RenatoFigueredo
Exatamente para retroceder com shift + tab está ok, porém quando completo a edição do campo ele não muda para o próximo campo, tem alguma ideia como faço isso?
W
windsofhell
Como vc faz pra mudar pro proximo campo?? Tab ?
W
windsofhell
Parece que tem um bug no seu codigo:
Voce definiu a variavel
varfocusAnt=true;
e depois no if colocou
if(facusAnt==false)
facusAnt nao vai existir, provavelmente vc ta tento erro no seu console. muda para focusAnt e veja se resolve o problema.
Ainda não funcionou, ele retrocede com shift + tab, porém não passa para o próximo campo; amigo muito obrigado ok, fazemos bem o que fazemos por que gostamos do que fazemos !
Vou ver se consigo pensar em outra solução.
R
RenatoFigueredo
VAMO LÁ GALERA… MOTIVAÇÃO JAVA NO SANGUE !!!
W
windsofhell
Ei,
Vc so muda pro proximo campo se o tamanho do valor do campo atual eh igual a “tamTotal”, certo??
Sim cara ele conta o valor tamTotal e não coloca o próximo foco. estranho…
W
windsofhell
Como eu sou bonzinho eu exemplo que eu fiz usando JQuery. Soh copiar e colar numa pagina e testar.
Nesse exemplo, no event onBlur eu adicionei codigo pra cachear o valor do campo. E no event keyPress verifica se o valor foi alterado, se foi alterado
e o tamanho do valor do campo chegar ao maximo, vai saltar pro proximo, caso contrario continua no mesmo campo.
Entao para testar, voce digita valores ate mudar o foco pro campo 2, pressione shit+tab pra voltar pro campo 1. Altere o campo ate chegar no limite pra fazer mudar o foco pro campo 2.
Sei que voce nao esta usando JQuery, mas da pra servir de inspiracao!
Amigo em meu sistema não funcionou não, se tiver outra ideia serei grato .
R
RenatoFigueredo
windsofhell muito obrigado conseguimos, funcionou desta maneira; porém o cursor não fica visível no campo mas selecionado como campo atual onde o usário continua digitando.
functionmudaCampo(campoAtual,tamTotal,campoProx){
if(event.shiftKey==true&&event.keyCode==9){campoAtual.value="";//Pula para o campo e apaga}
if(campoAtual.value.length==tamTotal){
campoProx.focus();}
}
R
RenatoFigueredo
Resolvido.
R
RenatoFigueredo
RenatoFigueredo:
Amigos estou com um conflito com o recurso SHIFT+TAB, que retrocede o cursor na navegação da tela. Quando o cursor retrocede para um desses campos que saltam automaticamente, ele volta para o campo posterior, pois o script de “saltar campo” entende que o campo está preenchido e não permite que o cursor lá permaneça; essa função em conjunto com o evento onkeyup acontece este problema. Alguém sabe como resolvo isso?