我在从Num pad输入数字值时遇到问题。我的脚本只接受来自' qwerty'上方数字键的数字。键。我想要的是用户也可以从数字键盘输入数字。以下是HTML:
<script>
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
但是我试图在onkeypress和onkeyup函数上调用脚本,但它没有工作,因为我已经在那里调用了函数。以下是仅接受数值的脚本。 此外,我已经仔细检查了Num Lock,这不是问题。
{{1}}
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
因为numlock数字键码是不同的正常数字键。
Ex keycode 48 = number 0,当Numlock 0 = keycode 96;
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : event.keyCode
console.log("KeyCode: "+charCode);
if (charCode >= 96 && charCode <= 106 )
console.log("Numlock number detected: "+charCode);
}
<td style="border: 1px solid #ddd;background-color:#E5E4E2;">
<input type="text" name="qty_enter[]" id="qty_enter0" onkeydown="isNumberKey(event)" style="width: 65px;"/>
</td>
答案 1 :(得分:0)
您的功能实际上是为了阻止数字键盘输入任何键。 使用true反转返回false,反之亦然,以启用nums但禁用字母和其他所有内容。
答案 2 :(得分:0)
Hey I got answer for my question after 3-4 days long. Script was ok. It was pretty simple I just changed event as shown in below.
<input type="text" name="qty_enter[]" id="qty_enter0" onkeyup="sum(0),itc_details(0),prevent_zero(0),advance_seeting1();" onkeypress="return isNumberKey(event)" onkeydown="copyValue2(1)" style="width: 65px;outline: none;border: none; background: transparent;"/>