Не работает в Safari и Firefox
я есть<input type="text">
поле, и мне нужно очистить его, когда это поле теряет фокус (что означает, что пользователь нажал где-то на странице). Но есть одно исключение. Поле ввода текста не должно очищаться, когда пользователь нажимает на определенный элемент.
Я пытался использоватьevent.relatedTarget
определить, нажал ли пользователь не только где-то, но и на мой конкретный<div>
.
Однако, как вы можете видеть из фрагмента ниже, он просто не работает.event.relatedTarget
всегда возвращаетсяnull
!
function lose_focus(event) {
if(event.relatedTarget === null) {
document.getElementById('text-field').value = '';
}
}
.special {
width: 200px;
height: 100px;
background: #ccc;
border: 1px solid #000;
margin: 25px 0;
padding: 15px;
}
.special:hover {
cursor: pointer;
}
<input id="text-field" type="text" onblur="lose_focus(event)" placeholder="Type something...">
<div class="special">Clicking here should not cause clearing!</div>