Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript onkeydown在数字键盘中不工作_Javascript_Html - Fatal编程技术网

javascript onkeydown在数字键盘中不工作

javascript onkeydown在数字键盘中不工作,javascript,html,Javascript,Html,从数字键盘输入数字值时出现问题。我的脚本仅接受“qwerty”键上方数字键的数字。我想要的是,用户也可以从数字键盘输入数字。以下是HTML: <td style="border: 1px solid #ddd;background-color:#E5E4E2;"> <input type="text" name="qty_enter[]" id="qty_enter0" onkeyup="sum(0),itc_details(0),prevent_zero(0),a

从数字键盘输入数字值时出现问题。我的脚本仅接受“qwerty”键上方数字键的数字。我想要的是,用户也可以从数字键盘输入数字。以下是HTML:

<td style="border: 1px solid #ddd;background-color:#E5E4E2;">
     <input type="text" name="qty_enter[]"  id="qty_enter0" onkeyup="sum(0),itc_details(0),prevent_zero(0),advance_seeting1();" onkeypress="copyValue2(1)" onkeydown="return isNumberKey(event)" style="width: 65px;outline: none;border: none; background: transparent;"/>
</td>

然而,我试图调用onkeypress和onkeyup函数的脚本,但它不起作用,因为我已经在那里调用了函数。下面是只接受数值的脚本。 另外,我已经仔细检查了Num锁,这不是问题所在

<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>

函数isNumberKey(evt)
{
var charCode=(evt.which)?evt.which:event.keyCode
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

任何帮助都将不胜感激。谢谢。

因为numlock数字键代码与普通数字键不同

Ex keycode 48=数字0,当Numlock 0=keycode 96时

函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:event.keyCode
console.log(“KeyCode:+charCode”);

如果(charCode>=96&&charCode您的函数实际上是为了阻止num pad输入任何键而编写的。
将返回值false与true颠倒,反之亦然,以启用nums,但禁用字母和其他所有内容。

嘿,我在3-4天后得到了问题的答案。脚本还可以。非常简单,我只是更改了事件,如下所示

<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;"/>


由于num lock已关闭,您的第一步应始终是调试。数字键盘的
keyup
keydown
接收到的按键代码与主键盘的按键代码不同。如果您使用浏览器内置的强大调试器,您几乎会立即看到。我有双通道注意,这不是问题所在,否则我就不会发布这个问题。@lissy我对num lock有一个奇怪的问题。它是相反的。我想这是因为我在远程工作(通过TeamViewer).Local machine,非常好。Remote machine,反转了num lock。也许这对其他人有帮助。你是说我应该在if块中添加numlock number keycode条件。是的,检查我更新的答案。你可以看到不同的numlock number vs qwert number。@shubhamdahibhatei如果你觉得我的答案对你有帮助,你可以。@shubha马达希巴特