0

我想挂钩在输入文本字段中键入的字符,并在字段中键入“1”,以防按下“a”。

这是代码:

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