当前位置:  开发笔记 > 编程语言 > 正文

如何更改Firefox中键入的字符

如何解决《如何更改Firefox中键入的字符》经验,为你挑选了1个好方法。

我需要在文本输入中更改字符'.' 输入时'',' 在IE中,我更改了keypress事件中的keyCode事件属性,就像这样

document.getElementById('mytext').onkeypress = 
 function (evt) {
  var e = evt || window.event;
  if (e.keyCode && e.keyCode==46)
   e.keyCode = 44;
  else if (e.which && e.which==46) {
   e.which = 44;
  }
 };

但它表明,在Firefox中,不可能更改键事件中键入的字符.有什么建议?



1> Ates Goral..:

试试这个.它适用于所有浏览器:

window.onload = function () {
    var input = document.getElementById("mytext");

    input.onkeypress = function () {
        var evt = arguments[0] || event;
        var char = String.fromCharCode(evt.which || evt.keyCode);

        // Is it a period?
        if (char == ".") {
            // Replace it with a comma
            input.value += ",";

            // Cancel the original event
            evt.cancelBubble = true;
            return false;
        }
    }
};

更新: Pier Luigi指出了上述问题.它没有照顾插入位置不在文本的末尾.即使您正在向值中插入一些文本,它也会将命令附加到结尾.

解决方案是,而不是附加逗号,以模拟逗号键的按键事件.不幸的是,在不同的浏览器中调度合成事件的方式似乎表现出很多种类,并不是一件容易的事.我会看看我是否能找到一个漂亮而通用的方法.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有