setTimeout не работатет должным образом

Всем привет. Данно: на странице есть inpit="search" c id="search" и input="submit" с id="submit". Необходимо: ввести текст в поле поиска и нажать кнопку submit. И только через три секунды должен появиться alert с текстом, который я ввел в поиск. onclick использовать только в js коде. Реализовал код следующим образом, но ничего не работает.

        submit.onclick=function(){
        setTimeout(function func() {
        if ((document.getElementById("search").value == "hi")) {
            return alert(" there")
        } else {
            return alert(document.getElementById("search").value)
        }
    } ,3000)
    }

Ответы (2 шт):

Автор решения: Igor

var submit = document.getElementById("btnSubmit");
submit.onclick = function() {
  setTimeout(function func() {
    if ((document.getElementById("search").value == "hi")) {
      return alert(" there");
    } else {
      return alert(document.getElementById("search").value);
    }
  }, 3000);
  return false;
}
<form>
  <input id="search" value="hi" />
  <button id="btnSubmit">Click</button>
</form>

→ Ссылка
Автор решения: MoloF

Мне почему-то кажется что автор хотел сделать задержку, если это не так, то это моя вина.

let isSubmit = false;

form.onsubmit = (e) => {
	e.preventDefault();
	
	if (isSubmit) return;
	
	isSubmit = true;
	setTimeout(() => isSubmit = false, 3000);
	
	const data = Object.fromEntries(new FormData(e.target).entries());

	if (data.text === "hi")
		return alert('Hello !');
		
	alert(data.text);
}
<form id="form">
	<input type="text" name="text">
	<button type="submit">submit</button>
</form>

→ Ссылка