Я связываю событие blur
с функцией showAlert
в элементе table
. Когда курсор покидает input
, происходит событие blur
, а функция showAlert
запускается и появляется окно alert
.
Иногда окно alert
нельзя закрыть. Вы закрываете его, затем он снова всплывает, и вы закрываете его, и он все еще всплывает. Я сделал этот вывод после тестирования приведенной ниже веб-страницы с Chrome не менее 50 раз. Эта проблема не возникает каждый раз.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="" method="post">
<table>
<tr>
<td>goods1</td>
<td><input type='text' name="goods1"></td>
</tr>
<tr>
<td>goods2</td>
<td><input type='text' name="goods2"></td>
</tr>
</table>
</form>
<script>
ob = document.getElementsByTagName("table")[0]
function showAlert(event) {
ob = event.target;
alert(ob.tagName);
}
ob.addEventListener("blur", showAlert, true);
</script>
</body>
</html>
Пожалуйста, проверьте несколько раз, пока проблема не возникнет.
Видео проблемы с Chrome
У меня такая же проблема в Firefox.
Скриншот проблемы с Firefox
Если вы не установите флажок «Запретить этой странице создавать дополнительные диалоговые окна», просто нажмите «ОК», окно alert
будет всплывать постоянно, навсегда.
Что вызывает это, и как я могу сделать этот код более надежным?