JSFiddle - React, Tailwind, and code Playground

HTML

<form method="post" action="javascript:void 0" onsubmit="return alert('form posted')"
      onkeypress="nextOnEnter(event)">
<input type="text" name="" value="" tabindex="0"/>
<br />
<input type="text" name="" value="" tabindex="1"/>
<br />
<input type="text" name="" value="" tabindex="2"/>
<br />
<input type="checkbox" value="" tabindex="3"> box1

<input type="checkbox" value=""> box2 (not tabbable)

<br />    
<input type="text" name="" value="" tabindex="4"/>
    <br />
<input type="submit" value=" Post " tabindex="5">
</form>

JavaScript

function nextOnEnter(e) {
    e = e || event;
    var obj = e.srcElement || e.target;
    nextOnEnter.fields = nextOnEnter.fields || getTabbableFields();
    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 = form.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;
}