Найдены некоторые ошибки в вашем коде, они
const UIDVal = getElementById('userID');
const regVal = getElementById('regiment');
Вы не можете использовать getElementById
отдельно, его нужно вызывать как метод элемента, например document
или какой-то другой js элемент. Поэтому его следует изменить на
const UIDVal = document.getElementById('userID');
const regVal = document.getElementById('regiment');
Другая проблема - неопределенные переменные isValidUID
, isValidfullname
и isValidregiment
. Вы пытаетесь использовать их, не объявляя их в первую очередь. Итак, в начале сценария объявите их.
var isValidregiment = false;
var isValidUID = false;
var isValidfullname = false;
Кроме того, вы не должны удалять отключенное состояние, пока все входные данные не будут действительными, поэтому вы должны проверять с помощью &&
вместо ||
.
if (isValidregimentVal && isValidfullnameVal && isValidUIDVal){
submit.disabled = false;
} else {
submit.disabled = true;
}
В вашем fullnameVal.addEventlistener
вы проверяете только isValidfullnameVal
, что недостаточно. Вы должны проверить все 3 условия, как в коде, который вы написали для других проверок.
Наконец, по умолчанию отключите кнопку, иначе пользователи могут отправлять форму, если они ничего не печатали, или после перезагрузки страницы.
<button id="submitbutton" disabled>Submit</button>
Пока мы находимся, почему бы просто не использовать type=submit
вместо добавления обработчика событий для проверки отправки
<button type="submit" disabled>Submit</button>
Если вы хотите заполнить таблицу на отправить, затем использовать событие submit
с preventDefault
и вызвать вашу функцию fillTable
там