2017-12-15 16 views
-1

Numパッドから数値を入力しているときに問題が発生しました。私のスクリプトでは、「qwerty」キーの上にある数字キーからの数値しか受け付けません。私が望むのは、ユーザーがテンキーパッドから数字を入力することもできるということです。以下はHTMLです:数字キーパッドでjavacriptのonkeydownが機能しない

<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 Lockをダブルチェックしましたが、それは問題ではありません。

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

助けてください。ありがとうございました。

+3

num lockがオフであるため – Lissy

+0

常に最初のステップは** debug **です。テンキーパッドの 'keyup'と' keydown'で受け取ったキーコードは、メインキーボードで受け取ったキーコードとは異なる*です。ブラウザに組み込まれた強力なデバッガを使用した場合は、ほぼ直ちにそのことがわかります。 –

+0

私は二重にチェックしましたが、そうでなければ私は質問を投稿しませんでした.. @ Lissy –

答えて

1

numlock numbersのキーコードは通常の数字キーとは異なります。

Exキーコード48 =数字0、Numlock 0 =キーコード96;

Look this article

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>

+0

ifブロックにnumlock numberのキーコード条件を追加する必要があると言っています –

+0

はい、 。異なるnumlock番号とqwert番号を見ることができます。 @shubhamdahibhate –

+0

あなたが私の答えがあなたを助けてくれたと思えば、私の答えを受け入れることができます(http://meta.stackexchange.com/a/5235)。 @shubhamdahibhate –

0

あなたの機能は、実際には任意のキーを入力することからnum個のパッドをブロックするように書かれています。 numを有効にし、文字以外は無効にするには、falseをtrueに、falseにfalseを逆にします。

0

ちょっと私は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;"/> 
関連する問題