<input type="text" onkeypress="if (event.keyCode==13){ func_name(this.value);}" id="userinput"/>
Enterキーを押すと関数を呼び出したテキストフィールドがあります。問題は、js関数のみを呼び出しているため、ページがリロードされるべきではないのにリロードされることです。何が間違っているのか教えてください。
<input type="text" onkeypress="if (event.keyCode==13){ func_name(this.value);}" id="userinput"/>
Enterキーを押すと関数を呼び出したテキストフィールドがあります。問題は、js関数のみを呼び出しているため、ページがリロードされるべきではないのにリロードされることです。何が間違っているのか教えてください。
Enterキーを押すとフォームが送信されます。フォームにイベントを添付し、onsubmit
false を返して送信を防止できます (送信する場合は true)。この機能を使用して、送信前にデータを検証したり、keypress
イベントをインターセプトしたりできます。
または、以下でコメントされているように、event.preventDefault() を使用して、Enter キーを押して送信をトリガーするのを防ぐことができます。
このようなもの...
<form action=".">
<input type="text" onkeypress="console.log('happy days'); event.preventDefault()">
</form>
これが古いメッセージであることはわかっていますが、「return false」を追加して解決しました。
<input type="text" onkeypress="if (event.keyCode==13){ func_name(this.value);return false;}" id="userinput"/>
たぶん、同様の問題を抱えている他の人に役立つでしょう。