【问题标题】:can't focus next input field using ascii 46 `.` (period)无法使用 ascii 46 `.`(句点)聚焦下一个输入字段
【发布时间】:2017-03-31 06:36:19
【问题描述】:

我有一个带有 4 个用于 IPv4 附加条目的文本框的表单,当用户按下句点 ascii #46 时,我希望焦点移动到下一个文本字段。

以下 JS/jQ(我基本上是从 Move Cursor to next text Field pressing Enter 提取的)适用于 enter (13)、esc 甚至空格字符 (32) 的 ascii 代码:

<script language ="javascript" type="text/javascript" >
    function ipfNext() {
      //alert( 'FUNC ipfNext' );
      $( document ).ready( function()  {
        $( '#formContent .inputTextIpf').keydown( function( e )  {
          if( e.keyCode == 46 ) {
            $( ':input:eq(' + ( $( ':input' ).index( this ) + 1 ) + ')' ).focus();
            return false;
          } // close IF 
        }); // close FUNC e
      }); // close docReady FUNC
    } // close FUNF ipfNext
  </script>

但它似乎不会触发像 46 . 这样的常规打印 ascii 代码。如何修改代码以允许常规 ascii 打印字符在按下时启动字段选项卡?

HTML 输入字段可以用 ascii 控制字符触发,但不能打印字符

<input type="text" id="ipf1" name="ipf1" class="inputTextIpf" maxlength="3" onkeyup="return ipfNext();" value=
        <?php
        if ( !empty( $_SESSION[ 'ipf1' ] ) ) {
          echo '"' . $_SESSION[ 'ipf1' ] . '"> . ';
        } else {
          echo '""> . ';
        } // close IF
      ?>

【问题讨论】:

  • 也添加 HTML。

标签: javascript jquery


【解决方案1】:

参考:https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes,句点.的keycode是190而不是46。46的keycode是指同页的DEL键。

【讨论】:

  • 很奇怪,但这就是解决方法。其他页面如:asciitable.com 将 46 定义为句点键,将 127 定义为 DEL 键。但是现在if( e.keyCode == 13 || e.keyCode == 32 || e.keyCode == 190 ) { 可以按预期工作,因此当在 IP ADDY 字段中输入空格键、回车键或句点键时,光标会出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
相关资源
最近更新 更多