Pregunta

Estoy tratando de implementar un emulador de línea de comandos en JavaScript. Quiero la clave Spacebar para actuar como Enter (enviar, a continuación, desactive la línea de comandos).

En este post, vamos representan una space como un guión bajo, por lo que los medios _ [space]:

Si entro banana_ y luego, después de agarrar la pulsación de tecla, llamo input.value= "", borra banana, pero no el space restante.

He probado tanto onkeydown y onkeypress, pero no parece hacer ninguna diferencia. En realidad, onkeyup hace el truco, ver mi respuesta a continuación!

Este es mi código. Podría alguien por favor me ayude elimino el espacio extra ...

<html><head>

<script type="text/javascript">  

    document.onkeypress = keyCheck;  

    function keyCheck( e ) {  
        var keyID = (window.event) ? event.keyCode : ( e.keyCode ? e.keyCode : e.charCode );  
        switch(keyID) {  
            case 32: //spacebar  
                alert( "space pressed, clearing..." );  
                document.getElementById( "cli" ).value="";  
                break;  
            default:  
                //do something else  
                break;  
            } 
        }  
</script>  
</head>  

<body>
  <form name="frm" id="frm" onSubmit="go( this )">
  <input name="cli" id="cli" type="text" name="cmd" size="122">
</body>

</html>
¿Fue útil?

Solución

Uso onkeyup lugar.

document.onkeyup = keyCheck;

De esta manera se produce el evento después el personaje se ha añadido al valor del elemento.

Pruébelo: http://jsbin.com/esacu3

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top