Так у вас функция, которая вызывает модальное окно, никак не связанна с формой. Вам надо слушать не событие
click у
кнопки, а слушать событие
submit у
формы. Ведь форму можно отправить клавишей Enter без клика на кнопку. А в этом событии можно проверить все ли поля введены.
Модальный диалог лучше делать тегом <dialog>
А модально показать диалог можно, например, так
dialog.showModal();
Подробнее тут:
https://developer.mozilla.org/en-US/docs/Web/HTML/...