我试图将我的文本字段限制为仅数字。 我正在使用:
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
答案 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)">