@e1_ing

Как выводить alert через три секунды после нажатия кнопки?

Alert вылетает через три секунды, но при этом не передаётся в него сообщение из функции derive. Если setTimeout убрать, то сообщение из функции derive отображается в alert исправно. Не понимаю что не верно...

<!DOCTYPE HTML>
<html>
<head>
<meta charset = "utf-8">
<title>задание</title>
<link type="text/css" rel="stylesheet" href="test_Elya.css" />
</head>
<body>
<script src="https://code.jquery.com/jquery-2.1.0.js"></script>
<form name = "search">
<input id="field" type = "text" value="" placeholder="Введите текст" size="70"> </input>
<button id="clack" type = "submit"> Найти </button>
</form>
<script>
var derive = function (textInField){
	var textInField = document.getElementById("field").value;
	if (textInField === "google") {
	alert ("Yandex не круче. Это точно.");
	} else {
	alert (textInField);
	};
};
$("#clack").click(setTimeout(derive, 3000));
</script>
</body>
</html>
  • Вопрос задан
  • 615 просмотров
Решения вопроса 1
webdisigner
@webdisigner
У вас типичная ошибка из-за того что вы вешаете листенер на submit
Если вы работаете без серверных технологий то вешайте на обычные кнопки
или отключайте поведение через
e.preventDefault();

var derive = function (textInField ){
  var textInField = document.getElementById('field').value;
  if (textInField === "google") {
  alert ("Yandex не круче. Это точно.");
  } else {
  alert (textInField);
  };
};
$("#clack").click(e=>{
  e.preventDefault();
  setTimeout(_=>derive(), 3000)
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы