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 {
    ...
  }
});
→ Ссылка