e。只有在输入字段焦点时才启用ENTER键

时间:2009-10-28 13:14:32

标签: javascript jquery

我正在使用e.which的jquery来按下ENTER来运行一个函数,但我希望只有在特定的输入字段被聚焦时(光标闪烁的地方)才会调用此函数。

我当前的jquery函数。

$(document).keyup(function(e) {
    if (e.which == 13) {
        var page = $("#userpage").val();

        if(page > 0) {
            $("#search").click();
        } else {
            $('.save').click();
        }
    }
});

我希望 $(“#search”)。click(); 只有在 #search_text 专注或有一些输入时才会被调用,因为我有几个输入字段和用户倾向于按Enter键,然后在Enter上调用此函数。

谢谢。

5 个答案:

答案 0 :(得分:9)

我会将事件监听器附加到该特定的输入元素:

$('#search_text').keyup(function(e) {
    if (e.which == 13) {
        // do it
    }
});

答案 1 :(得分:1)

只需在第二个 if 语句中将此行添加到您的函数中:

$('#search_text').focus(function()

答案 2 :(得分:0)

为#search_text元素绑定事件,而不是整个文档。这样它只会在元素具有焦点时触发。

答案 3 :(得分:0)

当我们将绑定应用于 $(document) 时,当文档具有 focus 时发生绑定。我们可以在这里使用相同的东西。通过在键绑定中使用 $(#search-text),我们可以使键绑定仅在 #search-text 获得焦点时触发。

$(#search-text).keyup(function(e) {
    if (e.which == 13) {
        var page = $("#userpage").val();

        if(page > 0) {
            $("#search").click();
        } else {
            $('.save').click();
        }
    }
});

答案 4 :(得分:-1)

您还需要添加:e.preventDefault();

$('document').keyup(function(e) {
  if (e.keyCode == '13') {
     e.preventDefault();
     var page = $("#userpage").val();
   }
});