2016-04-05 8 views
0

Wenn ich onkeypress verwende, kann ich alle Zeichen auf eine perfekt lesbare Weise zurückgeben. Großbuchstaben funktionieren,!,? , 'usw. funktioniert alles super. Das Problem ist, dass ich eine Rücktaste nicht erkennen kann.Zurückgeben von Zeichen in natürlicher Sprache mit onkeypress/onkeydown, wobei die Fähigkeit zur Rücksetzung beibehalten wird

onkeydown auf der anderen Seite erkennt die Backspace-Taste. Das Problem hier ist, dass es shift nicht gleichzeitig mit einem Buchstaben-Taste gedrückt wird, es ist immer Großbuchstaben, kann ich nicht Apostrophe, Ausrufezeichen, Fragezeichen sind auf dem Kopf, etc.

Wie kann ich natürliche Sprache zurückgeben Zeichen, während Sie gleichzeitig die Rücktaste verwenden und unerwünschte Zeichen löschen können?

<form action=""> 
     <textarea id="myArea" type="text" onkeydown="return myKeyPress(event)" ></textarea> 
    </form> 
<script> 
var socket = io(); 
function myKeyPress(e){ 
    var keynum; 
    var letter; 

    if(window.event) { // IE 
    keynum = e.keyCode; 
    } else if(e.which){ // Netscape/Firefox/Opera 
    keynum = e.which; 
    } 

    letter = String.fromCharCode(keynum); 
    socket.emit('theText', letter); 
} 
    socket.on('theText', function(msg) { 
     document.getElementById('myArea').value += msg; 
}) 
</script> 

Antwort

0

Es ist nicht unbedingt ein Entweder-oder Problem - nutzen onkeydown, ob sie Backspace gedrückt, sonst nichts tun. Benutze onkeypress, um andere Buchstaben zu erkennen.

Verwandte Themen