如何在ENTER / RETURN keydown上提交textarea

时间:2012-11-17 23:39:16

标签: javascript

如果按RETURN / ENTER,则在输入框中提交表格。在textarea中按RETURN会产生换行符。如何在RETURN keydown上创建一个而不是生成换行符提交表单,在SHIFT + RETURN中生成换行符? (像fb和其他网站一样)

有没有办法用HTML做到这一点?如果不是如何用JS完成?

这就是我现在正在尝试的事情:

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

然而,当我无法阻止断线发生时。 (如果按RETURN,则在提交之前可以看到换行符。)

3 个答案:

答案 0 :(得分:2)

使用jQuery,与其他答案类似,但包括你的提交转换请求不提交但只是换行

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

如果按下shift,它将不会提交,只是给你一个换行符。

答案 1 :(得分:1)

您可以看到Submitting data from textarea by hitting "Enter"的可能重复

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

将是您寻找的解决方案

答案 2 :(得分:0)

附加keydown事件监听器。如果event.keyCode || event.which评估为13(或10,为了安全),则按下Enter键,以便您可以使用表单的submit方法提交表单。