Galera, já vi alguns posts de pessoas querendo trocar o comportamento padrão das teclas em um formulário. Decidi fazer esse código pra não ter que ficar respondendo sempre a mesma coisa e para facilitar na hora de procurar o código.
function keyAction
(form, keyCode, fn){
var el=form.elements
for(var x=0; x<el.length; x++){
el[x].proximo=el[x+1>=el.length?0:x+1]
el[x].onkeydown=function(event){
if(window.event)
var evento=window.event
else
var evento=event
var continua=true
if(typeof fn=="function")
continua=fn.call(this, evento, keyCode)
if(continua){
if(evento.keyCode==keyCode){
if(
this.type &&
evento.keyCode == 13 &&
this.type == "submit"
) {this.form.submit(); return false}
this.proximo.focus()
return false
}
}
}
}
}
O comportamento padrão desta função é trocar o foco do elemento do formulário ao apertar uma tecla passada como segundo argumento da função. Quando este elemento for um elemento de tipo "submit" ele não trocará mais de foco e fará o submit do form.
Apesar deste comportamento estar pré-estabelecido, a função é genérica, podendo ser mudada passando uma função como argumento para modificar o comportamento padrão ou adicionar mais comportamentos.
A função passada como argumento pode retornar true ou false, se true, a função genérica continua com seu comportamento padrão que é trocar o foco do elemento ao apertar a tecla "Enter". Se ela retornar false então ela vai ser executada e a função genérica pára assim que a função passada como argumento acabar de ser executada.
Portanto, se além de trocar o foco quando o usuário teclasse "Enter" eu quisesse submitar o form quando o usuário teclasse "Tab", eu faria na chamada da função:
Pergunta
KaKarotto
Galera, já vi alguns posts de pessoas querendo trocar o comportamento padrão das teclas em um formulário. Decidi fazer esse código pra não ter que ficar respondendo sempre a mesma coisa e para facilitar na hora de procurar o código.
O comportamento padrão desta função é trocar o foco do elemento do formulário ao apertar uma tecla passada como segundo argumento da função. Quando este elemento for um elemento de tipo "submit" ele não trocará mais de foco e fará o submit do form. Apesar deste comportamento estar pré-estabelecido, a função é genérica, podendo ser mudada passando uma função como argumento para modificar o comportamento padrão ou adicionar mais comportamentos. A função passada como argumento pode retornar true ou false, se true, a função genérica continua com seu comportamento padrão que é trocar o foco do elemento ao apertar a tecla "Enter". Se ela retornar false então ela vai ser executada e a função genérica pára assim que a função passada como argumento acabar de ser executada. Portanto, se além de trocar o foco quando o usuário teclasse "Enter" eu quisesse submitar o form quando o usuário teclasse "Tab", eu faria na chamada da função: Caso eu quisesse apenas o comportamento padrão:Posta aqui sobre as dúvidas relacionadas a este script, sugestões e/ou críticas.
Aquele abraço.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.