0

入力テキスト フィールドに入力された文字をフックし、「a」が押された場合にフィールドに「1」と入力したいと考えています。

コードは次のとおりです。

<html>
   <body>

   <script type="text/javascript">

   function translate_code(charCode) {
      switch (charCode) {
         case 65: // 
            return '1' ;

         case 97:
            return '9'; 
      }
   }

   function noEnglish(event) {
      if (event.charCode) {
         var charCode = event.charCode;
      } else {
         var charCode = event.keyCode;
      }

      if (65 <= charCode && charCode <= 90) {
         document.getelementbyid("my_name").value += translate_code(charCode) ;
         event.returnValue = false ;    
      }  
   }
   </script>

   <form>
       <input type="text" name="my_name" id="my_name" onkeydown="noEnglish(event)" />
   </form>

   </body>
   </html>
4

2 に答える 2

1

まず、イベントで必要なことを確実に行うことができませんkeydown。これは、押された物理キーのみに関係し、そのキーに対応する文字には関係しません。必要なイベントは ですkeypress

私は以前にここで同様の質問に答えました:

要件の実際の例を次に示します: http://www.jsfiddle.net/timdown/NAC77/

于 2011-01-11T11:34:12.777 に答える
0

まず第一に、「A」ではなく「a」文字が必要な場合は、小文字を取得するために ASCII 文字 97 から 123 まで移動する必要があります。おそらく、65 から 90 まで、97 から 123 までのすべてが必要になるでしょう。

if((charCode >= 65 || charCode <= 90) && (charCode >= 97 || charCode <= 123))
于 2011-01-11T10:12:06.483 に答える