I didn't read all the comments so this might have already been said. You can do this little trick for input/labels. When you put the label below the input and then you can rely on the status of the input to display different things like requirements for the input if it is in an invalid state, etc. But then if you want the label to be above the input you just use flex and give your label an order of 0. This does require that you put your input/label in a div. But it is a small trade off.
I found intercoolerjs to be pretty good too. But I think you could probably do the same thing with less code and without jQuery to make it even more light weight.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.