0

我正在尝试复制我在下拉框中的功能,该下拉框允许用户选择标签,然后返回与该术语相关的文章。

文本框需要接受搜索词并以相同的方式工作。我已经尝试了我能想到的一切,但我得到的结果为零。

要复制该行为,请从下拉框中选择一个项目,它将返回文章。然后尝试在搜索框中输入相同的词,它不会返回任何文章。

知道为什么吗?这是网站:

http://www.api.jonathanlyon.com/getpocket/view.html

4

2 回答 2

1

一种解决方案是将您的搜索框代码更改为以下内容:

<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跨浏览器兼容。这是你需要研究的东西,但这应该让你开始。

于 2013-01-21T18:05:01.953 回答
0

我推荐使用 jQuery UI 组合框。它允许您键入值、自动完成并具有下拉功能。熟悉 jQuery UI 需要一些时间,但它很健壮,几乎适用于所有关于用户交互的解决方案:

jQuery UI 组合框演示

于 2013-01-21T18:09:22.657 回答