Conjunto valor formulario de entrada a “” hace espacios no claros
-
29-09-2019 - |
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>
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