【发布时间】:2015-10-09 23:37:03
【问题描述】:
我正在尝试从文本框中获取输入并使用该值在没有提交按钮的情况下执行搜索。因此,当文本框中的输入发生更改时,页面将显示相应的搜索研究结果。经过一些在线搜索,下面是我目前所拥有的。它不起作用。当我在文本框中输入时没有任何反应。有人可以帮忙吗?非常感谢!我也在代码中发表了评论。
<form name="form" method="post"/>
<input type="text" id="search" /> //when content in this text box changes, perform goSearch() and display result
<script type="text/javascript">
var input = document.getElementById("search");
function goSearch(){
var keyword = input.value; //get the input from textbox
//send keyword to search
var searchuri= somebaseuri +keyword; //send keyword with uri
var xhr = new XMLHttpRequest();
xhr.open("GET", searchuri,true);
xhr.setRequestHeader("Accept", "application/json");
xhr.onload= function(){
var list = JSON.parse(xhr.responseText);
showResult(list);
}
xhr.send(null);
}
function showResult(list){
//format and display the result we get from the server
}
input.onchange = goSearch(); //when input is changed, perform search function
input.onblur =goSearch();
}
</script>
</form>
【问题讨论】:
-
input.onchange = goSearch();分配执行函数的结果,您要为函数分配引用:input.onchange = goSearch;。 -
我试过了,但没用..
-
定义“无效”。将事件监听器作为属性附加在浏览器中已经使用了近 20 年,奇怪的是它现在应该停止了。
-
@RobG 感谢队友指出。我想你是对的。我会调查此事。我认为我在其他地方的代码有问题。
-
@RobG 谢谢!我试过你的建议,它奏效了。然而奇怪的是,它直到我单击调试器控制台才起作用。我的意思是当我在文本框中输入内容时,页面不会更新,直到我单击页面上的其他位置。你知道它为什么会这样吗?
标签: javascript html forms textbox uri