【问题标题】:jQuery bind keyup, keydown - Can't type into form fieldsjQuery绑定keyup,keydown - 无法输入表单字段
【发布时间】:2013-01-25 16:52:12
【问题描述】:

经过大量调试,我找到了无法在表单字段中输入任何文本的原因。

我有一个 jQuery 函数来捕获我在 JS 应用程序中使用的一些键。

$(document).bind 'keyup keydown', (e) -> 
    shifted = e.shiftKey
    cntrled = e.metaKey || e.ctrlKey

Javascript:

$(document).bind('keyup keydown', function(e) {
      shifted = e.shiftKey;
      return cntrled = e.metaKey || e.ctrlKey;
    });

为什么我不能在适当的位置输入表单字段?

只要删除那部分,我就可以再次输入。

【问题讨论】:

  • 显示你的keyup/keydown函数的完整代码。但假设该回调的代码中存在e.preventDefault()return false; 的唯一原因。
  • 这是完整的代码,是的,它是咖啡脚本
  • 查看生成的 JavaScript 会有所帮助。
  • 我添加了生成的Js

标签: jquery coffeescript


【解决方案1】:

您正在返回取消事件的值 cntrled。

在 Coffeescript 中,函数中的最后一个值将被返回。

在处理程序的最后一行返回 true。

JavaScript 相当于你现在正在做的事情......

$(document).bind('keyup keydown', function (e) {
    var shifted = e.shiftKey
        , cntrled = e.metaKey || e.ctrlKey;
    return cntrled;
});

改成...

$(document).bind('keyup keydown', function (e) {
    var shifted = e.shiftKey
        , cntrled = e.metaKey || e.ctrlKey;
    return true;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2021-08-15
    • 2017-10-08
    • 1970-01-01
    相关资源
    最近更新 更多