JS проверка input value
Есть задача, нужно проверить содержимое поля input. Если в поле input слово "google" и нажать на button - будет alert - "Okay!". Если что-либо другое и нажать на button - будет alert с введенными данными в input. Почему-то пропускает проверку if и идет к else, не понимаю...Помогите, если не трудно, спасибо!
найти!<script>
let button = document.getElementById('button');
let search = document.getElementById('search');
if (search.value == "google") {
button.addEventListener ('click', () => alert ("Okay!"));;
} else {
button.addEventListener ('click', () => alert (search.value));;
}
</script>
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
У вас неверная логика. Вы сравниваете значение из инпута и в зависимости от условия навешиваете слушателя, который при клике на кнопку выдаёт значение.
Нужно сделать так: вначале вешаете слушателя на кнопку и вот только при клике на неё делаете проверку условия (в колэк функции слушателя)
let button = document.getElementById('button');
let search = document.getElementById('search');
button.addEventListener ('click', () => {
if (search.value == "google") {
alert("Okay!");
} else {
alert(search.value);
}
});
<input id="search">
<button id="button">click</button>
Автор решения: Oleg Kosnyrev
→ Ссылка
Делай проверку внутри листенера
button.addEventListener('click', () => {
if (search.value === 'google') {
...
} else {
...
}
});