无法使用ASCII 46 `.`(句号)聚焦到下一个输入字段

6
我有一个包含4个IPv4地址输入框的表单,我希望当用户按下ASCII码#46(即句号)时,焦点能够移动到下一个文本框。
以下JS/jQ代码(基本上是从以下链接中获取的:Move Cursor to next text Field pressing 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>

但是对于常规的打印ASCII代码(如46 .),它似乎无法触发。如何修改代码以允许常规的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代码。 - Sagar V
1个回答

6

有点奇怪,但是这就是正确的解决方法。其他页面(例如:http://www.asciitable.com/)将46定义为“period key”(英文中句号键),而127定义为DEL键。但是现在,“if(e.keyCode == 13 || e.keyCode == 32 || e.keyCode == 190){ }”按预期方式工作了,因此当IP地址字段输入空格、回车或句号键时,光标将切换到下一个字段。 - commnux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接