【问题标题】:jQuery change keypress to text fieldjQuery将按键更改为文本字段
【发布时间】:2011-03-17 11:06:04
【问题描述】:

我正在寻找一种跨浏览器(可以基于 jquery)的方式来更改用户完成的按键操作。

捕捉它是没有问题的。以跨浏览器兼容的方式改变行为似乎是个问题。

基本上我需要将一些额外的键映射到特殊字符。就像 ctrl+alt+p 应该在文本字段或文本区域中输入特殊字符。

谢谢,

-丹尼斯

【问题讨论】:

  • 小心这个。根据浏览器(和操作系统)的不同,您可能会掩盖用户期望工作的快捷方式,或者您根本无法捕捉到它们。例如,Ctrl-Alt-... 快捷键通常用于 Linux 中的系统范围功能。
  • 我现在。但这是对功能的权衡。这是用户需要输入通常不在其键盘/键映射上的字符的情况。另一种方法是使用鼠标指向每个输入字段旁边的字符网格。
  • 嗯。看来这可能会解决它:stackoverflow.com/questions/1064089/…

标签: javascript jquery cross-browser special-characters keypress


【解决方案1】:

您可以捕获按键,查看事件以查看是否已按下 CTRL 或 ALT。我想这几乎就是你正在做的事情?

$(document).ready(function() 
{
    $("#target").keydown(function(event) 
    {
        if (event.ctrlKey && event.altKey && event.keyCode == '80') {
            alert("Ctrl-Alt-P combination");
        }
    }
});

【讨论】:

  • 是的,但我需要将 alert() 调用替换为实际写入字符的内容 - 可能只是浏览器正常写入的另一个字符。
【解决方案2】:

我之前在 SO:Can I conditionally change the character entered into an input on keypress?

上介绍过一种跨浏览器技术

您可以根据自己的映射进行调整。此外,如果您检测到涉及 CtrlAlt 的击键,则应使用 keydown 而不是 keypress 事件,因为并非所有浏览器都会在没有触发按键事件时触发输入字符。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2021-06-30
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多