【发布时间】:2017-08-03 12:28:47
【问题描述】:
我有一个<input type="text"> 字段,当该字段失去焦点时我需要清除它(这意味着用户单击了页面上的某个位置)。但有一个例外。用户单击特定元素时不应清除输入文本字段。
我尝试使用event.relatedTarget 来检测用户是否不仅点击了某处,还点击了我的特定<div>。
但是,正如您在下面的 sn-p 中看到的,它根本不起作用。 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>
【问题讨论】:
标签: javascript events onblur lost-focus focusout