2017-05-12 8 views
0

Ich brauche nach eingeben keypress Formular eingegeben js Funktion sendenWie zu vermeiden, Seite mit Ereignis onkeypress ENTER (keyCode == 13) zu aktualisieren?

folgende Antwort https://stackoverflow.com/a/905233/6827096 aber unterhalb Code Auffrischen Seite nach dem Drücken eingeben.

#.html 
<script src="chat.js'"></script> 
<input onkeypress="return sendChatMessage(event)"> 

#chat.js 
function sendChatMessage(e) { 
    if (e.keyCode == 13) { 
     console.log("e.keyCode == 13"); //never reachable 
     return false; 
    } 
    return true; 
} 

Wie zu vermeiden, Seite mit Ereignis onkeypress aktualisieren ENTER (keyCode == 13)?

Die Funktion sendChatMessage ist in der Browserkonsole mit geladener Seite sichtbar.

+0

Ist Eingang in einer Form? Ich sehe nicht, wie das Drücken der Eingabetaste die Seite aktualisiert. Wenn dies der Fall ist, sollten Sie zuerst das Senden von Formularen stoppen. – Yanaro

+0

Versuchen Sie mit dem onKeyup-Ereignis –

Antwort

1

Wenn Sie Ihre Eingabe innerhalb <form> Element ist, wird versuchen, der Enter-Taste das Formular abzuschicken. Versuchen Sie, fügen preventDefault() in Ihrem sendChatMessage():

function sendChatMessage(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); // this should prevent default action 
     console.log("e.keyCode == 13"); //never reachable 
     return false; 
    } 
    return true; 
} 
1

Versuchen Hinzufügen e.preventDefault(); auf Ihre Funktion sendChatMessage, es wird Link, um zu verhindern öffnen. Ihr Code wird wie folgt aussehen:

function sendChatMessage(e) { 

    if (e.keyCode == 13) { 
e.preventDefault(); // add this line of code. 
     console.log("e.keyCode == 13"); //never reachable 
     return false; 
    } 
    return true; 
} 
+0

preventDefault() ist die Antwort, (Benutzer @ Errata war 4 min schneller). Danke für die Antwort. – user6827096

+0

Das ist völlig in Ordnung. – hamzox

1

versuchen, beide e.which und e.keyCode zu verwenden:

function sendChatMessage(e) { 
    if (e.which == 13 || e.keyCode == 13) { 
     e.preventDefault(); 
     console.log("e.keyCode == 13"); 
     return false; 
    } 
    return true; 
} 
Verwandte Themen