event.charCode在Firefox中不起作用

时间:2018-06-21 10:48:10

标签: javascript html5 firefox mozilla

我试图将我的文本字段限制为仅数字。 我正在使用:

onkeypress="return (event.charCode >= 48 && event.charCode <= 57)"

当我想要删除(使用退格键或删除键)或使用箭头键将光标移动到另一个位置时,会出现问题,因为我无法使用这些键。

现在,我有了以下代码:

onkeypress="return ((event.charCode >= 48 && event.charCode <= 57) || event.charCode == 8)"

这是一个示例,charCode == 8表示允许退格。在Firefox中不起作用。我仍然将文本字段限制为数字,但仍然不能使用退格键。

你能帮我一下吗?你知道我在做什么错吗?

关键字代码:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

1 个答案:

答案 0 :(得分:1)

使用event.which

<input onkeypress="return ((event.which >= 48 && event.which <= 57) || event.which == 8)">


或者,您可以使用event.key并使用实际的密钥名称来测试有效性。

function handleNumericEditable(event){
  var allowed = /^[0-9]|Arrow(Left|Right)|Backspace|Home|End|Delete$/
  return allowed.test(event.key);
}
<input onkeypress="return handleNumericEditable(event)">