【问题标题】:AngularJS - react to a keypress event and replace pressed key with other keyAngularJS - 对按键事件做出反应并用其他键替换按下的键
【发布时间】:2014-06-24 07:42:10
【问题描述】:

我想要实现的是拦截按键事件并使应用程序的行为就像按下另一个键一样,例如如果用户在输入元素中按下逗号键,我希望将其替换为按下的点键,或者另一个示例,如果用户按下 Enter,我希望它的反应就像按下了 Tab 键一样。

【问题讨论】:

    标签: javascript angularjs angularjs-directive


    【解决方案1】:

    听起来您让用户填写表格。

    我不同意“替换”按键。我认为这会导致混乱,另外,无论你如何做(使用 JQuery.trigger 或像 sendkey 这样的 jQuery 插件),你都必须将它包装到指令中(用于通知角度外部事件/更改)。

    但是,您可以向输入注册一个 ng-change 事件并将所有逗号替换为点。

    要移动焦点,您可以使用类似 this 的指令注册一个 keyup 事件,并将焦点移动到下一个同级字段或您希望的任何输入。

    【讨论】:

    • 请注意,您必须处理以下情况:用户将 carret 移动到输入的开头并开始输入。复制粘贴(在字符串中间)等
    • 你可能是对的。最终我是通过监听 keydown 事件然后在输入值上用“点”替换“逗号”来做到这一点的。
    猜你喜欢
    • 2021-09-10
    • 2015-01-27
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多