

お世話になります。

Windows、VisualStudio2015のASP.NET(VisualBasic)、.NET Framework4.6、  
ローカルIIS、ブラウザはGoogleChrome、IE、で開発しています。

１つのページにtext（ASP.NETではTextBox、名称はtxtTest）を置き、  
バックスペース、タブ、前後矢印、半角数字のみ入力できるように、  
function(名称はnumOnly())を設定します。

以前質問させて頂きました内容に関連します。  
[HTMLのtextのonkeydownで半角数字のみ入力を指定したところテンキー入力が効かない。](https://ja.stackoverflow.com/questions/31831/html%E3%81%AEtext%E3%81%AEonkeydown%E3%81%A7%E5%8D%8A%E8%A7%92%E6%95%B0%E5%AD%97%E3%81%AE%E3%81%BF%E5%85%A5%E5%8A%9B%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%83%86%E3%83%B3%E3%82%AD%E3%83%BC%E5%85%A5%E5%8A%9B%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84)

文法に関する質問です。

WebページのソースにおけるHTMLを次のように書きます。

[code]

            function numOnly() {
                if ((48 <= event.keyCode) && (event.keyCode <= 57)) {
                    return true;
                } else {
                    return false;
                }
            }
    
[/code]

このように書きますと、半角数字のみ入力可能になり、  
バックスペース、タブ、前後矢印他、半角英文字の入力も利きません。  
そこで、event.keyCodeの値について、バックスペース＝8、タブ＝9、前後矢印＝37と39を利用し、  
次のように書き換えます。

[code]

        function numOnly() {
            if (event.keyCode = 8) {
                return true;
            }
            else if (event.keyCode = 9) {
                return true;
            }
             else if (event.keyCode = 37) {
                return true;
            }
             else if (event.keyCode = 39) {
                return true;
            }
             else if ((48 <= event.keyCode) && (event.keyCode <= 57)) {
                return true;
            } else {
                return false;
            }
        }
    
[/code]

ところが、このように書きますと、半角英文字の入力が出来てしまいます。  
この原因が分かりません。

書き方に不備があるようでしたら、  
ご教示頂けましたら幸いです。

どうぞよろしくお願いいたします。


CC BY-SA 3.0
2017-03-10T01:15:34.217
33225
2017-03-10T02:02:06.070
2017-04-13T12:52:39.113
-1
20210
question
javascript html css visual-studio asp.net
event.keyCodeによるテキスト入力の制限について


条件の`event.keyCode = 8`が代入(`=`)になっているのですべて等値比較(`==`)に書き換えてください。


CC BY-SA 3.0
2017-03-10T02:02:06.070
33226
2017-03-10T02:02:06.070
5750
33225
answer