Javascript - 检查用户是否正在编辑文本输入

han*_*rtz 5 javascript input function keypress coffeescript

您可以检查用户是否正在编辑文本字段而不编辑任何内容吗?我希望当用户位于文本字段并按 Enter 时调用一个函数。我知道它可以与表格一起使用。

咖啡:

$(document).keyup (e) -> 
  func()  if e.which is 13 and "user is in input field"
Run Code Online (Sandbox Code Playgroud)

JavaScript:

$(document).keyup(function(e) {
    if(e.which == 13 and "user is in input field") {
        func();
    }
});
Run Code Online (Sandbox Code Playgroud)

nnn*_*nnn 3

您可以使用 jQuery 的.on()方法创建一个委托事件处理程序,该事件document处理程序绑定到但仅在目标元素与您选择的选择器匹配时才调用您的处理程序函数:

$(document).on('keypress', 'input[type="text"],textarea', function(e) {
    if (e.which === 13) {
        // do something here
    }
});
Run Code Online (Sandbox Code Playgroud)

(这与 Musa 的答案类似,只是 jQuery 会.is()自动为您进行测试。)

请注意,第二个参数中的选择器是'input[type="text"],textarea'为了排除非文本输入。