JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<form>
<div>
<input type="text">
</div>
<div>
<select name="" id=""></select>
</div>
<div>
<input type="text">
</div>
<div>
<input type="text">
</div>
<div>
<select name="" id=""></select>
</div>
<div>
<input type="text">
</div>
<div style="width:100%;">
<input type="submit" value="Submit button">
</div>
</form>
CSS
div
{
width:25%;
float:left;
margin-bottom:20px;
}
input, select
{
width:85%;
}
input[type="submit"]
{
width:auto;
}
JavaScript
$(document).ready(function(){
let columns_number=4; // static for me, but you can send/get it via data-columns="4" as form attribute
$('form').find('input, select, textarea').each(function(){
$(this).attr('tabindex', $(this).attr('type')==='submit' ? 999 : $(this).closest('div').index()%columns_number+1);
});
});