触发文本区域中的输入

发布于 2024-10-22 22:58:59 字数 283 浏览 2 评论 0原文

我注意到 Facebook 发送状态评论的新方式。基本上,当您撰写评论时,您没有可以单击的按钮,而是可以按“输入”键来提交评论。现在我也想做这个东西。我正在考虑可能的解决方案。我认为 是在按下 Enter 按钮的情况下提交的,但 textarea 不是。

  • 要么我写一个输入(键入文本)并设置一个高度,覆盖多于一行
  • ,要么我必须添加一个文本区域并以某种方式在用户按 Enter 时提交该表单。

哪个是最好的?如果答案=第二,我该怎么做?

I noticed the new Facebook way of sending comments on status. Basically when you write your comment you have no buttons to click but the "enter" key to press in order to submit the comment. Now I'd like to make this thing too. And I was thinking about the possible solutions. It comes to my mind that <input> are submitted with the enter button pressed, but that textarea are not.

  • Either I write an input (type text) and set an height witch covers more than a row
  • Or I have to add a textarea and somehow submit that form when the user press enter.

Which is the best? And if the answer = second, how could I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

薄荷梦 2024-10-29 22:58:59

这取决于你如何定义最好。

如果您想要一个不需要 javascript 的非常简单的解决方案,第一个是最好的。

如果您希望允许文本中换行,则第二个是最好的。

如果您希望使用文本区域解决方案,您可以执行以下操作:(使用 jQuery)

<textarea id="mytextarea"></textarea>
<script>
$('#mytextarea').keypress(function(e){
  if(e.keyCode == 13 && !e.shiftKey) {
   e.preventDefault();
   this.form.submit();
  }
});
</script>

此解决方案的好处是,如果人们在按 Enter 时按住 Shift 键,它仍然允许人们进行换行。就像在 Skype 上一样。

现场示例:http://jsfiddle.net/MEtGg/

It depends how you define best.

The first is best if you want a really easy solution that doesn't require javascript

The seconds is best if you wish to allow linebreaks in the text.

If you wish to use the text area solution you can do something like this: (uses jQuery)

<textarea id="mytextarea"></textarea>
<script>
$('#mytextarea').keypress(function(e){
  if(e.keyCode == 13 && !e.shiftKey) {
   e.preventDefault();
   this.form.submit();
  }
});
</script>

The good thing about this solution is that it still allows people to do linebreaks, if they just hold in the shift key when they hit enter. Just like on skype.

Live example here: http://jsfiddle.net/MEtGg/

夜夜流光相皎洁 2024-10-29 22:58:59

为此不需要框架(例如 jQuery):

var textarea = document.getElementById("area");

try {
    textarea.addEventListener("keydown", keyPress, false);
} catch (e) {
    textarea.attachEvent("onkeydown", keyPress);
}

function keyPress(e) {
    if (e.keyCode === 13) {
        alert("Enter key was pressed")
    } else {
        return;
    }
}

看一下这里的示例: http: //fiddle.jshell.net/yuCAd/3/

No need for a framework (such as jQuery) just for this:

var textarea = document.getElementById("area");

try {
    textarea.addEventListener("keydown", keyPress, false);
} catch (e) {
    textarea.attachEvent("onkeydown", keyPress);
}

function keyPress(e) {
    if (e.keyCode === 13) {
        alert("Enter key was pressed")
    } else {
        return;
    }
}

Take a look at an example here: http://fiddle.jshell.net/yuCAd/3/

长途伴 2024-10-29 22:58:59

当焦点位于文本区域时,我会在回车键上注册一个关键侦听器,这是最常见和最好的方式。

在 jquery 中,您可以使用 keydown/up 方法

I'd register a key listener on the enter key when the focus is in your textarea, that's the most common and best way imo.

in jquery you can use the keydown/up method

嗳卜坏 2024-10-29 22:58:59

我会选择第二个。并会使用javascript来拦截回车键,然后调用一个函数来进行提交。
这个答案应该适用于这种情况: 触发按钮使用 JavaScript 单击文本框中的 Enter 键

I would go with the second. And will use javascript to intercept the enter key and then call a function to do the submit.
This answer should do the case: Trigger a button click with JavaScript on the Enter key in a text box

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文