Javascript 按enter键提交表单时使用标记

Javascript 按enter键提交表单时使用标记,javascript,jquery,forms,markdown,Javascript,Jquery,Forms,Markdown,我有一个Rails项目,我想在表单中使用Markdown,其中表单是用enter键提交的。我不知道这是否可行,因为输入降价是针对新行的。只是想知道我是否遗漏了什么。据我所知,如果我想使用降价,我必须在表单中使用提交按钮 如果我真的想在表单中使用enter键作为submit的降价功能,我想我必须对每件事都进行专门编码。比如: $("textarea").keydown(function(e){ // Enter was pressed with shift key if (e.ke

我有一个Rails项目,我想在表单中使用Markdown,其中表单是用enter键提交的。我不知道这是否可行,因为输入降价是针对新行的。只是想知道我是否遗漏了什么。据我所知,如果我想使用降价,我必须在表单中使用提交按钮

如果我真的想在表单中使用enter键作为submit的降价功能,我想我必须对每件事都进行专门编码。比如:

$("textarea").keydown(function(e){
    // Enter was pressed with shift key
    if (e.keyCode == 13 && e.shiftKey)
    {
        // add <br> to html $("textarea").val();
        // prevent default behavior
        e.preventDefault();
    }
});
$(“textarea”).keydown(函数(e){
//用shift键按下Enter键
if(e.keyCode==13&&e.shiftKey)
{
//将
添加到html$(“textarea”).val(); //防止默认行为 e、 预防默认值(); } });

只是想确定我是在找对人。谢谢

我认为如果你有一个带有降价的表单,你肯定需要一个按钮来提交表单。 如果我看到多行文本区域(即使没有标记),我希望
Enter
添加新行而不提交表单

检查它在其他网站上的工作方式,例如:

更新:好的,如果你必须这样做,这里是我认为可以做到的方法。 这样做的目的是,如果在不移动的情况下按Enter键,则提交表单(并防止使用默认值,因此Enter键不会转到文本)。Shift+Enter插入新行(看起来它只是工作,不需要做任何事情)

示例代码:

$(“文本区域”)。按键(功能(e){
//警报(“键:”+e.keyCode);
//用shift键按下Enter键
如果(e.keyCode==13&&!e.shiftKey)
{
e、 预防默认值();
$('form').submit();
}
});
$(“表格”)。提交(功能(e){
警报(“已提交”);
e、 预防默认值();
});


你能澄清你的问题吗?您的问题似乎有了解决方案(使用shift+enter插入换行符,然后在不使用shift的情况下输入以提交)。使用[tab]将焦点从文本区域移动到提交按钮,然后点击[enter]有什么问题?@Josh1billion理想情况下,我会使用降价。我提出的解决方案需要做很多工作。@Waylan理想情况下,我不必使用提交按钮。自从我发布后,我注意到Slack似乎使用了降价,但您也可以通过按enter键提交用户的消息。对于新行,使用shift-enter键。他们做的正是我想做的。我只是想弄清楚怎么做。@Rachel这可能是我唯一不喜欢的一件事。无数次我发送了一条输入了一半的消息,我讨厌每次都发生。@Rachel顺便说一句,我刚刚在上一条评论中测试了它-stackoverflow在Ctrl-Enter上提交了新的评论表单,因此,它们都允许您使用Enter键断行,并且只使用键盘编写和提交消息。很高兴知道您不喜欢在Slack上这样做。是的,你说得对。刚刚测试过。刚刚了解到Slack不使用降价: