提问人:Bous 提问时间:10/17/2023 最后编辑:Heretic MonkeyBous 更新时间:10/18/2023 访问量:33
关闭 -webikit-search-cancel-button 上 input-“search” 的下拉列表 click
close dropdown for input-"search" on -webikit-search-cancel-button click
问:
我有一个带有 type=“search” 的输入框,下面是一个选项列表,单击输入框时会显示在下拉列表中。我设法让它工作。
但是,我现在遇到的问题是:每当单击输入框中的“X”(search-cancel-button)时,输入框中的输入文本都会被删除,但下拉列表不会消失。
我该如何解决这个问题?
以下是我的代码:
.form .formtextbox {
position: relative;
display: inline-block;
width: 100%;
}
.form .formtextbox .options {
display: none;
position: absolute;
background-color: var(--white);
min-width: 100%;
box-shadow: 0px 2px 7px 0px #0000001F;
padding: 12px 16px;
z-index: 1;
}
.form .formtextbox:focus-within .options {
display: block;
}
<form method="get" action="">
<fieldset class="form">
<div class="formtextbox">
<input title="search_form_title" type="search" placeholder="Search" autocomplete="off">
<div class="options">
<ul unselectable="on">
<li>apple</li>
<li>banana</li>
<li>pineapple</li>
<li>strawberry</li>
</ul>
</div>
</div>
<div class="formbutton">
<input type="submit" hidden />
</div>
</fieldset>
</form>
答:
1赞
mandy8055
10/17/2023
#1
一种方法是使用一点 JavaScript。我所做的是添加一个函数,该函数侦听按钮单击事件,然后隐藏下拉选项。该按钮不调度单击事件,而是调度事件。我们可以监听相同的内容,并在发生时隐藏下拉选项。此外,我还添加了 input 和 options 元素以在 Javascript 中引用它们。您可以很好地使用其他方式。像这样:X
X
input
ids
document.getElementById('search-input').addEventListener('input', function() {
var options = document.getElementById('options-container');
if (this.value.length === 0) {
options.style.display = 'none';
} else {
options.style.display = 'block';
}
});
.form .formtextbox {
position: relative;
display: inline-block;
width: 100%;
}
.form .formtextbox .options {
display: none;
position: absolute;
background-color: var(--white);
min-width: 100%;
box-shadow: 0px 2px 7px 0px #0000001F;
padding: 12px 16px;
z-index: 1;
}
.form .formtextbox:focus-within .options {
display: block;
}
<form method="get" action="">
<fieldset class="form">
<div class="formtextbox">
<input id="search-input" title="search_form_title" type="search" placeholder="Search" autocomplete="off">
<div id="options-container" class="options">
<ul unselectable="on">
<li>apple</li>
<li>banana</li>
<li>pineapple</li>
<li>strawberry</li>
</ul>
</div>
</div>
<div class="formbutton">
<input type="submit" hidden />
</div>
</fieldset>
</form>
评论