Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript e、 仅当输入字段聚焦时,才启用哪个输入键_Javascript_Jquery - Fatal编程技术网

Javascript e、 仅当输入字段聚焦时,才启用哪个输入键

Javascript e、 仅当输入字段聚焦时,才启用哪个输入键,javascript,jquery,Javascript,Jquery,我正在使用jquery中的e.which来运行一个按ENTER键的函数,但是我希望只有在特定的输入字段被聚焦(光标闪烁)时才调用这个函数 我当前的jquery函数 $(document).keyup(function(e) { if (e.which == 13) { var page = $("#userpage").val(); if(page > 0) { $("#search").click(); }

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

我当前的jquery函数

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

        if(page > 0) {
            $("#search").click();
        } else {
            $('.save').click();
        }
    }
});
我想要$(“#搜索”)。单击()仅当#search_text聚焦或有一些输入时调用,因为我没有更多的输入字段,用户倾向于按enter键,在enter键时调用此函数


谢谢。

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

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

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

只需将这一行添加到第二个if语句中的函数中:

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

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


我同意,但建议使用
keypress
事件,而不是
keyup
事件,因为它会更快地触发,并且在所有主流浏览器中都有可靠的可打印字符字符代码。调用jQuery给出字符串
'document'
不会将事件附加到document元素。您需要使用
$(document)
,而不使用引号。此外,当您调用
preventDefault()
时,所有后续的“默认”事件将不再触发。
$('document').keyup(function(e) {
  if (e.keyCode == '13') {
     e.preventDefault();
     var page = $("#userpage").val();
   }
});