2010-12-11 6 views
44

フォームのテキストエリアに入力するとき、Enterキーが押されたときのデフォルトの動作は、次の行に移動することです。フォームの動作を変更して、ユーザーがテキストエリアにいるときでもユーザーが入力したときに送信するにはどうすればよいですか?テキストエリアにフォーカスがあるときに入力時にフォームを送信するにはどうすればよいですか?

チェックアウトにFirebugを使用しましたStack  オーバーフローのコメントtextarea(この動作はありますが)この影響を受けたJavaScriptは見つかりませんでした。 JavaScriptを使用せずにテキストエリアの動作を変更する方法はありますか?

+3

<textarea class="commentarea"></textarea> 

を:ここで

はStackOverflowのがするようにあなたのようにjQueryでそれを行うことができる方法ですか? –

答えて

95

JavaScriptを使用しないとできません。 Stackoverflowは、ページロード時にHTML要素に関数を添付するjQuery JavaScriptライブラリを使用しています。ここで

は、基本的なJavaScriptでそれを行うことができ方法は次のとおりです。

<textarea onkeydown="if (event.keyCode == 13) { this.form.submit(); return false; }"></textarea> 

キーコード13は、入力キーです。私たちは、「テキストエリアでとき入力した上でフォームを送信」するために、この質問の名前を変更する場合、どのよう

$(document).ready(function() { 
    $('.commentarea').keydown(function(event) { 
     if (event.keyCode == 13) { 
      this.form.submit(); 
      return false; 
     } 
    }); 
}); 
+11

ユーザーは、キーを放したときの操作に慣れているので、onkeyup keydown()の代わりにkeyup()を使用します。 –

+0

素敵な説明。 @Eric Fortis - onkeyupについての良い点。 – andrew

+0

私は、コードをきれいに保つために、私のフォーム関数ファイルに入れておきます。 – andrew

4
<form id="myform"> 
    <input type="textbox" id="field"/> 
    <input type="button" value="submit"> 
</form> 

<script> 
    $(function() { 
     $("#field").keyup(function (event) { 
      if (event.which === 13) { 
       document.myform.submit(); 
      } 
     } 
    }); 
</script> 
+0

HTMLの関連する部分がIDであることに注目してください。私はテキストボックスを使用しましたが、動作を添付する任意のタグにすることができます。また、わかりやすいように、IDでフォームを呼び出すことをお勧めします。コード内に複数のフォームがある場合は、特に便利です。 –

+0

素敵な、私は瞬間にjqueryを学ぶことを計画していません。私は関数を自分で書く方が好きです。なぜなら、JavaScriptを書く練習のチャンスが得られるからです。 – andrew

5

Enterキーを押したときにテキストエリアを送信したいのはなぜですか?

Enterを押すと、デフォルトで「テキスト」入力が送信されます。これは単一行入力です。

<input type="text" value="..."> 

"textarea"は、複数行の機能の恩恵を受けているため、使用できません。エンタープライズへの投稿は、この利点の一部を取り除きます。

<textarea name="area"></textarea> 

入力キー入力と自動送信を検出するためにJavaScriptコードを追加できますが、テキスト入力を使用する方がよい場合があります。

+1

複数行の入力ボックスが必要なので、Enterキーを押してユーザーが送信できるようにします。送信ボタンを完全に省く予定です。私は、入力キーが押されたときにコメントを提出できるようにするには、コメントの追加ボタンを消さなければならないと考えています。 – andrew

関連する問題