从onkeyup事件输入中触发JS函数

时间:2014-07-05 16:44:02

标签: javascript onkeyup

我有这个非常基本的代码,我觉得应该工作但不是。

我有这样的表格:

<form id="search-box" action="">
     <input id="search" type="text" placeholder="Search here.." onkeyup="search(this.value)"><!--
   --><input id="submit" type="submit" value="Search">
</form>

此表单触发JS搜索功能。此搜索功能包含:

function search(input){
    alert(input);
}

我已将包含该函数的JS文件链接到html文档的开头:

<script src="js/ajax.js"></script>

但问题是这不起作用。当onkeyup被触发时我收到错误:

Uncaught TypeError: object is not a function    localhost:16:201
onkeyup localhost:16:201

我可以得到一些帮助吗?

2 个答案:

答案 0 :(得分:2)

在您的代码中,您有一个名为search的函数和一个id search的元素。 id的HTML元素将成为该名称的全局变量,因此id search的元素会覆盖您的函数search变量。< / p>

尝试这样的事情。

<强> HTML

form id="search-box" action="">
     <input id="search" type="text" placeholder="Search here.." onkeyup="doSearch(this.value)"><!--
   --><input id="submit" type="submit" value="Search">
</form>

<强> JS

function doSearch(input){
    alert(input);
}

答案 1 :(得分:0)

在HTML中,表单中的元素ID和函数名称不能相同。这些会造成冲突。

在表单中添加ID时,会将该元素添加为表单[id]。因此,如果您将使用相同的函数名称,则会以相同的形式创建冲突。

Here是一个非常好的问题,已经回答了同样的问题。