我在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上测试过。
答案 0 :(得分:3)
我认为这是firefox的一个错误(至少是兼容性问题),如
String.fromCharCode(173)
输出“”
通常,按键代码更可靠,例如对于char'+',您可以按数字面板上的shift(16)和=(187)或+(107),但按键keyCode将始终为43。
此外,当您使用jQuery时,首选event.which。
event.which属性规范化event.keyCode和event.charCode