javascript - 如何在清除输入字段时触发 JavaScript 事件?

标签 javascript html

我正在尝试制作一个即时搜索框。当用户开始在搜索框中输入内容时,它会触发一个 javascript 事件来隐藏博客文章 (#home) 并显示搜索结果(下面不包含这部分脚本)。然而,在用户清除搜索框后,他们看到的只是一个空白页面,因为 #homedisplay 仍设置为

我如何让 JavaScript 检测到用户在 #search-input清除了输入字段 并使 #home 显示 true 又是?

document.getElementById('search-input').oninput = function() {
    document.getElementById('home').style.display = 'none';
};

enter image description here enter image description here enter image description here

最佳答案

您可以通过 input 事件监听器执行此操作。要隐藏 #home 元素,请添加一个条件来检查输入是否有值。如果没有,则将其隐藏。要将其取回,您可以执行相反的操作,但如果#home 被隐藏:

const searchInput = document.getElementById('search-input');
const home = document.getElementById('home');

searchInput.addEventListener('input', function() {
    if (!this.value) {
        home.style.display = 'none';
    } else if (this.value && home.style.display === 'none') {
      home.style.display = 'block';
    }
});
<input id="search-input" type="text"/>

<div id="home">
  Sample Content
</div>

关于javascript - 如何在清除输入字段时触发 JavaScript 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614523/

相关文章:

javascript - innerHtml 和 innerText 破坏 Internet Explorer 中的选项卡

html - Firefox 和语音合成 API

javascript - 在Javascript中将句子作为元素放入数组中,这可能吗?

javascript - 如何使用 HTML2Canvas 为 jQuery 元素截取屏幕截图?

javascript - 在 Javascript 中创建 Ask 函数

javascript - 渲染部分只是渲染来自ajax的字符串

javascript - 如何在 jQuery 中延迟鼠标悬停事件

javascript - 如何避免 PNG 框架溢出?

javascript - 在超链接的点击事件上调用javascript函数

javascript - 未定义源必须以 "https://"或 "//"开头