@Lukmann

Почему не работает else if внутри функции?

Не работает else if внутри функции
let modalForm = document.querySelector('.infoForm');
let name = document.querySelector('.infoForm .name');
let email = document.querySelector('.infoForm .email');
let nameLine = document.querySelector('.name-line');
let emailLine = document.querySelector('.email-line');
modalForm.addEventListener("submit",formValidator);
function formValidator(){
	let check = 0;
	if (email.value === '') {
		emailLine.style.background = 'red';
	} else if(name.value === ''){
		nameLine.style.background = 'red';
	}
}

но первый if работает
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
TAbrahamyan
@TAbrahamyan
уберите else if, там нет необходимости проверить если это не правильно то сделать другое
if (email.value === '') {
  emailLine.style.background = 'red';
} 

if (name.value === '') {
  nameLine.style.background = 'red';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vabka
Токсичный
У вас всё работает именно так, как вы написали
В ветку else попадает всё, что не проходит по условию первого if, тоесть туда попадает всё, где email.value !== ''.
Потом делается проверка, что email.value === '', которая всегда будет false.
else if - это не специальный оператор.
если расставить все фигурные скобки, то ваш код будет выглядеть так:
function formValidator(){
  let check = 0;
  if (email.value === '') { 
    nameLine.style.background = 'red';
    emailLine.style.background = 'red';
  } else { // тут всегда email.value !== ''
    if(email.value === '') {
      emailLine.style.background = 'red';
    }
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽