デフォルトでは、テキストエリア内で「Enter」キーを押すとフォームが送信されます。ただし、この機能を維持しながら、ユーザーが「Shift」と「Enter」のキーの組み合わせを押して新しい行を作成できるようにしたいと考えています。 JavaScript でこれを実現する方法は次のとおりです。
「Enter」でフォームを送信するスクリプトを制御する場合は、「Shift」キーが押されていないかどうかをチェックするようにコードを変更するだけです。たとえば、これを次のように変更します:
if (evt.keyCode == 13) { form.submit(); }
... を次のように変更します:
if (evt.keyCode == 13 && !evt.shiftKey) { form.submit(); }
ただし、元のコードにアクセスできない場合は、次のスクリプトを使用できます。カーソルがテキストの末尾にない場合でも、目的の動作を実現するには:
function handleEnter(evt) { if (evt.keyCode == 13 && evt.shiftKey) { if (evt.type == "keypress") { pasteIntoInput(this, "\n"); } evt.preventDefault(); } } // Handle both keydown and keypress for Opera as it suppresses default key action in keypress $("#your_textarea_id").keydown(handleEnter).keypress(handleEnter);
このスクリプトは、「Shift」「Enter」キーをチェックします。組み合わせ。検出されると、pasteIntoInput 関数を使用してテキストエリアに改行文字 (「n」) が挿入され、デフォルトのフォーム送信が阻止されます。
以上がフォームを送信する代わりにテキストエリアに新しい行を挿入する「Shift Enter」を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。