jQuery keyup()的麻烦

时间:2015-05-18 13:00:43

标签: javascript jquery keyup

页面重新加载而不是调用click函数,但是如果我在.html扩展名之后插入查询字符串?#,它就可以了。在chrome中测试

我的代码:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>

        $(document).ready(function () {

            $('#search_btn').click(function () {
                alert("searching");
                // search functions

            });

            $("#search").keyup(function (event) {
                if (event.which == 13) {
                    alert("enter key pressed");
                    $("#search_btn").click();
                }
            });
        });

    </script>
</head>
<body>
    <form>
       <input type="text" id="search" />
       <button class="btn" type="button" id="search_btn">Search</button>
    </form>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

对您的代码进行此更改

$('#search_btn').click(function (e) {
     e.preventDefault();
     alert("searching");
     // search functions
});

答案 1 :(得分:1)

将事件添加为click()函数的参数,然后使用event.preventDefault()阻止该事件的默认处理程序,以便它不会重定向。

    $(document).ready(function() {

      $('#search_btn').click(function(e) {
        e.preventDefault();
        alert("searching");
        // search functions

      });

      $("#search").keyup(function(event) {
        if (event.which == 13) {
          alert("enter key pressed");
          $("#search_btn").click();
        }
      });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="text" id="search" />
  <button class="btn" type="button" id="search_btn">Search</button>
</form>

编辑:如果这不起作用,请通过添加以下内容阻止表单提交:

  $('form').on('submit', function(e) {
    e.preventDefault();
  });

您可以使用指定给表单的ID替换form

答案 2 :(得分:1)

使用例如

防止提交特定的FORM
$('form:has(#search)').on('submit', function(e){
    e.preventDefault();
});

-jsFiddle-