繁体   English   中英

Javascript无法在引导输入中正常运行

[英]Javascript doesn't work as expected in bootstrap input

我想在用户输入单词并按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>

问题是当我在输入中键入内容并按Enter时,页面不会重定向到新位置,并且在当前页面的URL http://localhost/Mo3taz/public/bio?之后显示一个问号http://localhost/Mo3taz/public/bio?

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

从您描述的行为中,我可以很容易地猜测到您的输入是在<form>内部,并带有GET方法(该方法将参数添加到URL之后的? ,但是您的参数为空,因为您的输入没有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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM