【问题标题】:I try to hook a character from javascript keydown event我尝试从 javascript keydown 事件中挂钩一个字符
【发布时间】:2011-01-11 09:50:24
【问题描述】:

我想挂钩输入文本字段中键入的字符并在字段中键入“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>

【问题讨论】:

  • 为了澄清起见:如果在同一输入字段中输入了“a”,您想在输入字段中打印“1”吗?

标签: javascript onkeydown


【解决方案1】:

首先,您无法通过keydown 事件可靠地执行您想要的操作,该事件仅与按下的物理键有关,而不与与该键对应的字符有关。您需要的活动是keypress。

我以前在这里回答过类似的问题:

这是一个满足您要求的实例:http://www.jsfiddle.net/timdown/NAC77/

【讨论】:

    【解决方案2】:

    首先,如果您想要“a”字符而不是“A”,则必须从 ASCII 字符 97 到 123 来获取小写字母。你可能会想要它们 - 65 到 90 和 97 到 123。

    if((charCode >= 65 || charCode <= 90) && (charCode >= 97 || charCode <= 123))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多