Никакой скрипт не нужен, просто используй псевдокласс placeholder-shown, очевидно плейсхолдер виден только когда поле пустое, так что можно считать эти вещи эквивалентными, за исключением того что у поля обязателен какой либо плейсхолдер
Ну и все решение сводится к
.my-beautiful-inut__field:placeholder-shown ~ .my-beautiful-input__error-message{
display:block;
}
Ну и чтобы кнопка не жалась достаточно положить инпуты с кнопкой в форму, и указать им атрибут required