【发布时间】:2021-01-30 11:00:25
【问题描述】:
我有以下带有输入选项的表单,并且 datalist 没有提交按钮。这是我创建的搜索栏。我也有带有 onchange 事件的 javaScript 来为选项标签添加 href。问题是,当用户想要搜索并输入一个字母时,它就会开始搜索。用户应该完全输入并且搜索引擎应该可以工作。如何防止这种情况发生?
$(document).ready(function() {
$("[list='serv']").on("input propertychange", function() {
window.location = $("#serv option[value='"+$("[list='serv']").val()+"']").find("a").attr("href")
});
});
<form class="search">
<input type="text" name="exx" list="serv" id="example">
<datalist id="serv">
<option value="google"><a href="https://www.google.com">google </a></option>
<option value="facebook"><a href="https://www.facebook.com">facebook</a></option>
</datalist>
</form>
【问题讨论】:
-
请添加minimal reproducible example,因为
change事件仅应在输入元素的值被提交时触发,例如通过按下回车键,从选项列表中选择一个值,等等。 -
最简单的解决方案是添加一个搜索按钮。
-
全打字是什么意思?你必须指定。但是,我认为即使用户正在输入搜索星也会更好。这对用户来说更加友好。 (所有现代搜索都是在您键入时搜索或提供建议)
-
如果用户甚至输入“p”,它就会开始搜索。当用户输入 product 而不是 p 并按回车键时,它应该开始搜索
标签: javascript html jquery ajax