我有一个搜索表单,想要当用户想要搜索并最后按回车键,然后指向他们想要的搜索页面。
HTML
<div class="search">
<form method="post" action="" onsubmit="return do_search();">
<input type="text" value="Nhập từ khóa tìm kiếm"
onfocus="if (this.value == 'Nhập từ khóa tìm kiếm') this.value = ''"
onblur="if (this.value == '')this.value = 'Từ khóa'" id="searchInput" name="query" onkeydown="EnterKey(event);"/>
<input type="submit" value="" />
</form>
</div><!-- end #search -->
JS
function EnterKey(a) {
if(13 == (window.event ? window.event.keyCode : a.which)){
var temp = document.getElementById("searchInput").value;
alert("enterkey: "+temp);
do_search(temp);
}
}
function do_search(a) {
var input = document.getElementById("searchInput").value;
alert("do_Search "+a);
return window.location.href = input,!1;
}
问题是,当我致电do_search(temp)
时,提醒显示undefined
。
为什么我的提醒没有显示正确的消息?
答案 0 :(得分:2)
事件onsubmit出错。您可以在没有参数的情况下调用函数do_search()
。因此变量a
未定义。
答案 1 :(得分:1)
问题是pressing enter
会提交表单。所以它现在实际上被调用两次,按下输入并在EnterKey()
内调用。您不必明确检测enter
,然后拨打do_search()
,因为按enter
会自动拨打do_search()
。