Как реализовать кнопку с type=submit без перезагрузки страницы?
Повесить event.preventDefault на submit. Обратите внимание что событие происходит у формы, а не у кнопки
Пример с картинки делается стандартной браузерной валидацией. Просто укажите у инпута аттрибут required.

Но если хочется свою кастомную валидацию, которая будет работать во всех браузерах, тогда в коллбэке, обрабатывающем submit событие, нужно добавить event.preventDefault() и для верности в конце коллбэка вернуть return false.

https://developer.mozilla.org/ru/docs/Web/API/Even...