我想在用户输入单词时重定向用户,然后按Enter键进入另一页
<div class="form-group has-feedback">
<input id="searchbox" type="text" class="form-control" placeholder="search" onkeypress="Fsearchbox(event)" />
<i class="glyphicon glyphicon-camera form-control-feedback"></i>
</div>
<script>
function Fsearchbox(e) {
var keynum;
if(window.event) // IE
keynum = e.keyCode;
else if(e.which) // Other browsers
keynum = e.which;
if (keynum==13)
{
var x = document.getElementById("searchbox").value;
window.location.href = '/Mo3taz/public/search/'+x;
}
}
</script>
问题是当我在输入中输入内容并按回车键时,页面不会重定向到新位置,并在当前页面的网址后显示问号http://localhost/Mo3taz/public/bio?
这是什么原因?我该如何解决呢?
答案 0 :(得分:0)
根据您描述的行为,我可以轻松猜测您的输入位于<form>
内,并使用GET
方法(在?
之后将参数添加到网址中),但是参数为空,因为您的输入没有name
属性。)
当您按Enter键时,表单将被提交,并且您的重定向不会被考虑在内。要阻止提交表单并通过JS进行重定向,只需添加e.preventDefault();
固定代码:
function Fsearchbox(e) {
var keynum = e.keyCode || e.which;
if (keynum==13){
var x = document.getElementById("searchbox").value;
window.location.href = '/Mo3taz/public/search/'+x;
e.preventDefault();
}
}