1

入力ボックスで RETURN/ENTER を押すと、フォームが送信されます。テキストエリアで RETURN を押すと改行が生成されます。改行を生成する代わりに RETURN キーダウンでフォームを送信し、SHIFT + RETURN で改行を生成するにはどうすればよいですか? (fbや他のサイトと同じように)

HTMLだけでそれを行う方法はありますか?そうでない場合、JSでどのように行うことができますか?

これは私が今試していることです:

$('#conversationForm textarea').keydown(function(e) {
    e = e || event;
    if(e.keyCode == 13 && !e.shiftKey) {
        $("#conversationForm").submit();
        return false;
        }
    });

ただし、改行が発生するのを防ぐことができなかった場合。(RETURN を押すと、送信前に改行が表示されます。)

4

3 に答える 3

2

jQueryを使用し、他の回答と同様ですが、シフトを送信せずに改行するだけのリクエストを含めます

$("#mytextarea").keypress(function() {
  if(event.which == 13 && !event.shiftKey)
  {
      //submit your form here  i.e. form.submit();
  }
});​

ここでシフトが押されると、送信されず、改行が表示されます。

于 2012-11-17T23:49:48.277 に答える
1

Submitting data from textarea by hits "Enter" as you seeの重複の可能性

[SomeTextarea].onkeyup = function(e){
  e = e || event;
  if (e.keyCode === 13) {
    // start your submit function
  }
  return true;
 }

あなたが探している解決策になるでしょう

于 2012-11-17T23:44:34.597 に答える
0

keydownイベント リスナーをアタッチします。が 13 (安全のために 10) と評価された場合event.keyCode || event.whichは、Enter キーが押されたので、フォームのsubmitメソッドを使用してフォームを送信できます。

于 2012-11-17T23:43:20.980 に答える