ENTER = TAB
One way to use enter as tab key in a form.
HTML
<form method="post" action="javascript:void 0" onsubmit="return alert('form posted')"
onkeypress="nextOnEnter(event)">
<input type="text" name="" value=""/>
<br />
<input type="text" name="" value=""/>
<br />
<input type="text" name="" value=""/>
<br />
<input type="checkbox" value=""> box1
<input type="checkbox" value=""> box2
<br />
<input type="text" name="" value=""/>
<br />
<input type="submit" value=" Post ">
</form>
JavaScript
function nextOnEnter(e) {
e = e || event;
var obj = e.srcElement || e.target;
nextOnEnter.fields = nextOnEnter.fields || getAllInputFields();
if (!(obj.tagName && (obj.tagName.match(/input/i))) || obj.getAttribute('type').match(/submit/i)) {
return true;
}
if (e.preventDefault){
e.preventDefault();
} else if (e.stopPropagation){
e.stopPropagation();
} else {
e.returnValue = false;
}
if (e.keyCode === 13) {
var tabi = parseInt(obj.getAttribute('tabindex'),10);
if ( tabi+1 < nextOnEnter.fields.length ){
nextOnEnter.fields[tabi+1].focus();
}
return false;
}
}
function getTabbableFields(form){
form = form || document.forms[0];
var ret = [],
inpts = document.getElementsByTagName('input'),
i = inpts.length;
while (i--){
var tabi = parseInt(inpts[i].getAttribute('tabindex'),10),
txtType = inpts[i].getAttribute('type');
ret[tabi] = inpts[i];
}
return ret;
}
/** if you don't want to use tabindex or want to tab through all the
* input fields in their given order, use this function
*/
function getAllInputFields(form){
form = form || document.forms[0];
var inpts = form.getElementsByTagName('input');
ret = [],
i = inpts.length;
while (i--) {
ret[i] = inpts[i];
inpts[i].setAttribute('tabindex',i); //you'll need this
}
return ret;
}