Tengo un formulario con 4 cuadros de texto para la entrada de IPv4 addy en el que quiero que el foco se mueva al siguiente campo de texto cuando el usuario presione el punto ascii # 46.
El siguiente JS/jQ (que básicamente tomé de: Mover el cursor al siguiente campo de texto presionando Enter ) funciona para códigos ascii para enter (13), esc e incluso el carácter de espacio (32):
<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> pero no parece funcionar para la impresión regular de códigos ascii como 46 . . ¿Cómo se puede modificar el código para permitir que los caracteres de impresión ascii regulares inicien la pestaña de campo cuando se presionan?
Campo de entrada HTML que funciona bien con caracteres de control ascii pero no imprime caracteres
<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 ?>En referencia a: https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes , el código clave para el período . es 190 y no 46. El código clave para 46 se refiere a la tecla DEL según la misma página.