Impostare il valore di ingresso modulo per “” non fa gli spazi non chiare
-
29-09-2019 - |
Domanda
Sto cercando di implementare un emulatore di riga di comando in JavaScript. Voglio che la chiave Spacebar
di agire come Enter
(presentare, quindi deselezionare la riga di comando).
In questo post, facciamo rappresentano una space
come una sottolineatura, in modo da mezzo _
[space]
:
Se io entro banana_
e poi, dopo la cattura la pressione dei tasti, che io chiamo input.value= ""
, azzera banana
, ma non il space
rimanente.
ho provato sia onkeydown
e onkeypress
, ma non sembra fare alcuna differenza. In realtà, onkeyup
fa il trucco, vedere la mia risposta qui sotto!
Questo è il mio codice. Qualcuno potrebbe aiutarmi a rimuovere lo spazio in più ...
<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>
Soluzione
Usa onkeyup
invece.
document.onkeyup = keyCheck;
In questo modo si verifica l'evento dopo Il personaggio è stato aggiunto al valore dell'elemento.
Provalo: http://jsbin.com/esacu3