Javascript在bootstrap输入中无法正常工作

时间:2015-08-23 22:23:08

标签: javascript twitter-bootstrap

我想在用户输入单词时重定向用户,然后按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?

这是什么原因?我该如何解决呢?

1 个答案:

答案 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();
    }
}