1

如果您在输入框中按 RETURN/ENTER,则您提交表单。在 textarea 中按 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,与其他答案类似,但包括您要求 shift 不提交而只是换行的请求

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

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

于 2012-11-17T23:49:48.277 回答
1

如您所见,通过按“Enter”从 textarea 提交数据的可能重复项

[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事件监听器。如果event.keyCode || event.which计算结果为 13(或 10,为了安全起见),则按下 Enter 键,以便您可以使用表单的submit方法提交表单。

于 2012-11-17T23:43:20.980 回答