2017-05-12 11 views
0

は私がイベントonkeypress ENTER(keyCode == 13)でページを更新するのを避けるには?

入力答えhttps://stackoverflow.com/a/905233/6827096に従うがを入力して押した後にページを更新コードの下のキー押下後jsの関数にフォーム入力を送信する必要があります。

(キーコード== 13)を入力しますOnKeyPressイベントでさわやかなページを避けるために、どのように
#.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; 
} 

機能sendChatMessageは、ページが読み込まれたブラウザコンソールに表示されます。

+0

は、フォーム内の入力ですか? Enterを押してページを更新する方法がわかりません。そうであれば、最初にフォーム提出を停止することを検討してください。 – Yanaro

+0

onKeyupイベントで試してください –

答えて

1

入力が<form>の要素内にある場合は、を入力してと入力するとフォームが送信されます。あなたのsendChatMessage()preventDefault()を追加しよう:を開いてから、リンクを防ぐために起こっているあなたの関数sendChatMessage、e.preventDefault();を追加

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

してみてください。あなたのコードは次のようになります。

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()が答えです(user @errataは4分速くなりました)。返信ありがとう。 – user6827096

+0

それは完全に大丈夫です。 – hamzox

1

e.whichとe.keyCodeの両方を使用してみてください:

function sendChatMessage(e) { 
    if (e.which == 13 || e.keyCode == 13) { 
     e.preventDefault(); 
     console.log("e.keyCode == 13"); 
     return false; 
    } 
    return true; 
} 
関連する問題