我正在尝试复制我在下拉框中的功能,该下拉框允许用户选择标签,然后返回与该术语相关的文章。
文本框需要接受搜索词并以相同的方式工作。我已经尝试了我能想到的一切,但我得到的结果为零。
要复制该行为,请从下拉框中选择一个项目,它将返回文章。然后尝试在搜索框中输入相同的词,它不会返回任何文章。
知道为什么吗?这是网站:
我正在尝试复制我在下拉框中的功能,该下拉框允许用户选择标签,然后返回与该术语相关的文章。
文本框需要接受搜索词并以相同的方式工作。我已经尝试了我能想到的一切,但我得到的结果为零。
要复制该行为,请从下拉框中选择一个项目,它将返回文章。然后尝试在搜索框中输入相同的词,它不会返回任何文章。
知道为什么吗?这是网站:
一种解决方案是将您的搜索框代码更改为以下内容:
<form name="searchform" >
<input type="text" name="searchterm">
<input type="button" value="search" onclick="validateForm()">
</form>
由于您并没有真正提交表单并且不想重新加载页面,因此您可以只使用click
来自 abutton
的事件而不是submit
来自form
.
如果你想让它在点击Enter
按钮时获取文章,这是一种方法(可能有更好的方法,我现在只是没有想到......)。您可以使用该keydown
事件来运行将测试Enter
按钮的函数。当它找到它时,它会调用validateForm
. 将此函数添加到您的脚本中:
function init(){
document.getElementById("searchterm").addEventListener(
"keydown", keydown
);
function keydown(e){
if(e.keyIdentifier == "Enter"){
validateForm();
}
}
}
并将您的身体标签更改为:
<body onload="init();">
将keydown
事件侦听器附加到textbox
页面加载后。
一个警告说明:我正在运行 Chrome 的 Linux 笔记本电脑上对此进行测试。我不知道Mac是否调用Enter
密钥Return
,也不知道是否.keyIdentifier
跨浏览器兼容。这是你需要研究的东西,但这应该让你开始。
我推荐使用 jQuery UI 组合框。它允许您键入值、自动完成并具有下拉功能。熟悉 jQuery UI 需要一些时间,但它很健壮,几乎适用于所有关于用户交互的解决方案: