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>
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top