e。减号连字符的键码已经改变

时间:2013-12-05 04:26:40

标签: javascript jquery

我在Ubuntu Linux下运行。我有一个JavaScript函数,可以在用户输入数据时对其进行编辑。使用$,.-+字符编辑数据。

<script type="text/javascript" src="/static/jquery/jquery-1.4.2.js"></script>
<script type="text/javascript" src="/static/jquery/jquery-ui-1.8.1.custom.min.js"></script>
<script type="text/javascript" src="/static/js/json_sans_eval.js"></script>
<script type="text/javascript" src="/static/edit.js"></script>
<script type="text/javascript" src="/static/cdpUtils.js"></script>
function onkeypressFunc (event)
{
    var data = event.target.value;
    var keyNum = event.which;
    var keyCode = event.keyCode;
    var shiftKey = event.shiftKey;
    var charCode = event.charCode;
    if (keyNum == 9 && keyCode == 9) // this works when using keydown
    {

我已经测试keyNum几个月了, + 键已经是43而 - 键已经是45。 今天我注意到我不能再使用主键盘上的 - 键输入负数。检查后,我可以看到keyNum代码现在是173.对此更改有任何解释。我相信几个月前发生了同样的事情,我不得不改变软件,然后寻找新代码。

这只在Firefox 22.0上测试过。

1 个答案:

答案 0 :(得分:3)

我认为这是firefox的一个错误(至少是兼容性问题),如

String.fromCharCode(173)

输出“”

通常,按键代码更可靠,例如对于char'+',您可以按数字面板上的shift(16)和=(187)或+(107),但按键keyCode将始终为43。

此外,当您使用jQuery时,首选event.which

  

event.which属性规范化event.keyCode和event.charCode