我有这个非常基本的代码,我觉得应该工作但不是。
我有这样的表格:
<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
我可以得到一些帮助吗?
答案 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是一个非常好的问题,已经回答了同样的问题。