Enter Como TAB //Repositório JavaScript

Descrição

Tabulação via tecla enter.
Criado: 2005.08.08 - Modificado 2013.09.17

Dependências

Código (Download)

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/forms/enter-as-tab [rev. #3]

enterAsTab = function(f, a){
    addEvent(f, "keypress", function(e){
        var l, i, f, j, o = e.target;
        if(e.keyValue == 13 && (a || !/textarea|select/i.test(o.type))){
            for(i = l = (f = o.form.elements).length; f[--i] != o;);
            for(j = i; (j = (j + 1) % l) != i && (!f[j].type || f[j].disabled || f[j].readOnly || f[j].type.toLowerCase() == "hidden"););
            e.preventDefault(), j != i && f[j].focus();
        }
    });
};

Exemplo (Exemplo)

<form action="" id="form">
    <fieldset>
    <legend>Tabula??o via enter</legend>
    <label>input text</label><input type="text" />
    <label>input text</label><input type="text" />
    <label>input text</label><input disabled="disabled" type="text" />
    <label>input radio</label><input type="radio" name="aaa" /> op??o 1
    <input type="radio" name="aaa" checked="checked" /> op??o 2
    <label>textarea</label><textarea rows="3" cols="15">aaaaaa pode dar enter q ele naum pula hahah</textarea>
    <label>textarea</label><select><option>op??o blablablabla</option><option>op??o bleblebleble</option></select>
    <label>input text</label><input type="text" />
    </fieldset>
</form>

<script type="text/javascript">
//<![CDATA[

enterAsTab(document.forms.form);

//]]>
</script>

Ajuda

enterAsTab(form: HTMLFormElement, [jumpAlways: Boolean = false]): void
A função irá adicionar tabulação via enter em todos os inputs, exceto selects (pois é necessário utilizar o enter para selecionar uma opção) e textareas (pois o enter fornece quebra de linhas). Os inputs devem estar dentro de uma tag form e ao chegar no último input o comportamento padrão é voltar para o primeiro ao pressionar enter.
form
formulário que receberá a tabulação via enter
jumpAlways
se true, o enter irá pular até mesmo selects e textareas

Ranque (Votos: 158)

2.53