Засчитывается ли наведение на заблокированную кнопку?
Есть небольшой код:
let log = document.getElementById('login'); // input с логином
let pas = document.getElementById('password'); // input с паролем
let but = document.getElementById('button'); // кнопка (логично, да?)
but.addEventListener('mouseover', function() {
if (log.value == '' && pas.value == '') {
but.disabled = true;
} else {
but.disabled = false;
}
})
Хочу сделать такую плюшку, типо, пока не будет введён и логин и пароль, кнопка должна быть заблокирована. Но как это сделать? Я начал перебирать варианты с EventListener, т.к. функция без него будет происходит один раз и выдавать один результат. Сначала подумал, что можно создать переменную, отвечающую за всю область (body) и по нажатию на любую точку отслеживать условия функции. Но при таком обстоятельстве, на каждый клик, кнопка блокируется и разблокируется.
Пришла мысль сделать Event наведения мышки на кнопку. Если ничего не введено и кнопка не заблокирована изначально (изначально будет блокнута, но потом), то при наведении, она блокируется, тут всё ок. Но вот обратно, если введён и login и password, она не разблокируется. Получается, если кнопка блокнута, она не воспринимает наведение мышкой?
P.S. В гугле не нашёл ответа(
Ответы (1 шт):
Кнопка не регистрирует наведения (mouseover), когда она заблокирована. Создал другую логику. При наведении проверять, заполнены ли поля "Логин" и "Пароль", блокировать, если одно из полей не введено и на keyUP в input'е логина и пароля делать проверки, заполнен ли соседний input и только тогда разблокировать кнопку.