Enter键在搜索框中不起作用

时间:2014-08-18 15:27:01

标签: javascript jquery html input

试图搜索这些家伙抱歉。只有当用户点击搜索按钮时,只有当您按Enter键时,搜索框中的输入才会起作用(或搜索)。我究竟做错了什么?这是我的代码。谢谢。

<script type="text/javascript">
  $(document).ready(function() {
    $("#submit").click(function() {
        var url = "http://asla.org/awardssearch.html";
        url += "?s=" + $('#GoogleCSE').val();
        window.location = url;
    });
    $('#GoogleCSE').keydown(function(event) {
        if (event.keyCode == '13') {
            $("#submit").click();
            }
        else {
            //do nothing :)
        }
    });

});
</script>

<form class="navbar-form navbar-right" role="search">
      <div class="search">
        <input id="GoogleCSE" type="text" onblur="if(this.value=='')this.value=this.defaultValue;" onfocus="if(this.value==this.defaultValue)this.value='';" value="Search All Awards" name="Search All Awards" />
        <input id="submit" type="button" value="Search" />
      </div>
</form>

2 个答案:

答案 0 :(得分:3)

如果您将#submit元素type更改为&#34;提交&#34;,则无论如何都不需要自己手动处理,因为这是默认浏览器行为:

<input id="submit" type="submit" value="Search" />

现在,我们可以改为处理#submit元素form事件,而不是处理submit按钮的点击事件:

$('form[role="search"]').submit(function() {

    var url = "http://asla.org/awardssearch.html";
    url += "?s=" + $('#GoogleCSE').val();
    window.location = url;

});

JSFiddle demo

答案 1 :(得分:1)

通过$("#submit").click(),您只需触发自己添加的点击处理程序,而不是点击它时的控件默认行为。

改为使用yourForm.submit()并更改其回调中的网址:

$("#yourForm").submit(function() {
    var url = "http://asla.org/awardssearch.html";
    url += "?s=" + $('#GoogleCSE').val();
    window.location = url;
});