【问题标题】:Javascript/jQuery move to next field on keypressJavascript/jQuery 在按键上移动到下一个字段
【发布时间】:2010-07-08 02:58:12
【问题描述】:

当用户在文本区域中按下向下箭头键时,它位于文本区域的底部(即keyup 无效),我想要一个事件处理程序来捕获它。

$("<textarea />").keyup(function (e) {
    switch (e.keyCode) {
        case 40: // down
          // if last line or alternatively
          // if keypress does not change index
          // do something.
          break;
    }
});

有没有可能实现这个功能?

同样,我很想知道如何在文本区域顶部捕获相反的键码 38(“up”)。

编辑:顺便说一句,如果有帮助的话,我正在使用jQuery FieldSelection plugin。

必须接受任何输入。

【问题讨论】:

  • 看起来 fieldSelection 插件可以读取插入符号的位置,那么为什么不直接在您按下上/下键时存储它,并在下次按下该键时查看它是否不同?我不确定我是否在这里看到了这个问题……看来您已经大致弄清楚了。 :)
  • @Faisal:是的,我已经用 FieldSelection 解决了这个问题。我正在等待有人为后代发布答案,并分享一些mod点。 :)
  • 我非常感谢 cmets 了解为什么这被否决了。

标签: javascript jquery textarea jquery-events


【解决方案1】:

FieldSelection 插件的文档似乎很少,但请查看this page 上更新功能中的代码。您应该能够收集如何检测插入符号是否移动;这不是你想要的,但它很接近。这样做的原因是什么?

编辑:我看到了您对乔纳森回答的评论。至少在 Chrome 中,最后一个向下箭头会将插入符号移动到文本区域的末尾,您应该能够按照上面的方法检测到。但是,请记住,您的用户需要了解此“功能”。您可能会考虑通过允许用户添加文本区域的链接来使其更加透明。

【讨论】:

  • Chrome 解决方案非常有用。我正在尝试为超长文档(即> 5,000个打印页)实现一个合理的界面,因此单个文本区域是不可能的。因此,我使用按段落分割的文本区域进行就地编辑。在段落末尾按下向下键时,预期的用户体验是移动到下一个可编辑段落。
  • 当然没问题,只要你仔细考虑了用户体验。
猜你喜欢
  • 2016-01-20
  • 2021-08-07
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2014-08-04
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多