2
<input type="text" onkeypress="if (event.keyCode==13){ func_name(this.value);}"    id="userinput"/>

Enterキーを押すと関数を呼び出したテキストフィールドがあります。問題は、js関数のみを呼び出しているため、ページがリロードされるべきではないのにリロードされることです。何が間違っているのか教えてください。

4

2 に答える 2

5

Enterキーを押すとフォームが送信されます。フォームにイベントを添付し、onsubmitfalse を返して送信を防止できます (送信する場合は true)。この機能を使用して、送信前にデータを検証したり、keypressイベントをインターセプトしたりできます。

または、以下でコメントされているように、event.preventDefault() を使用して、Enter キーを押して送信をトリガーするのを防ぐことができます。

このようなもの...

<form action=".">
    <input type="text" onkeypress="console.log('happy days'); event.preventDefault()">
</form>
于 2012-10-08T12:03:57.670 に答える
5

これが古いメッセージであることはわかっていますが、「return false」を追加して解決しました。

<input type="text" onkeypress="if (event.keyCode==13){ func_name(this.value);return false;}" id="userinput"/>

たぶん、同様の問題を抱えている他の人に役立つでしょう。

于 2014-12-09T13:34:34.273 に答える