The problem here is, that the mouse button down will cause the focus to leave the input field.
Then the validation feedback is reset which then causes the button to change position.
The button trigger on the other hand will only happen on the mouse button up event, which in that case may miss the button.
It is indeed a matter of correct styling as Austin said.
You could opt for a ‘validation’ microflow that is part of the logic triggered by your ‘Submit’ button, this would solve the issue you experience:
This way you also have one microflow that contains all your validations, which provides a better overview than having to click on every input element to see if there is an ‘on change’ validation event :)
EDIT: Beaten by Austin, who suggests the same: microflow validation
How are you doing your validation? Are you marking the field as required or are you doing it at the beginning of your microflow? If you arent, I recommend doing the validation in the microflow.