簡體   English   中英

從onkeyup事件輸入觸發JS函數

[英]Firing JS function from onkeyup event input

我有這個非常基本的代碼,我認為應該可以,但是不能。

我有這個表格:

<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

我可以幫忙嗎?

在您的代碼中,您有一個名為search的函數和一個具有search id的元素。 具有id的HTML元素將通過該名稱變為全局變量,因此具有search id的元素將覆蓋作為您函數的search變量。

嘗試這樣的事情。

的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);
}

在您的HTML中,表單中的元素ID和函數名稱不能相同。 這些造成沖突。

當您在表單中添加ID時,它會將該元素添加為form [id]。 因此,如果您具有相同的函數名稱,它們將以相同的形式產生沖突。

是一個很好的問題,已經回答了差不多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM