触发文本区域中的输入
Posted
技术标签:
【中文标题】触发文本区域中的输入【英文标题】:Triggering the enter in a textarea 【发布时间】:2011-07-18 04:19:35 【问题描述】:我注意到发送 cmets 状态的新 Facebook 方式。基本上,当您撰写评论时,您没有可单击的按钮,而是按下“输入”键以提交评论。现在我也想做这个东西。我正在考虑可能的解决方案。我想到<input>
是在按下回车按钮的情况下提交的,但 textarea 不是。
哪个是最好的?如果答案 = 秒,我该怎么做?
【问题讨论】:
【参考方案1】:这取决于你如何定义最佳。
如果您想要一个不需要 javascript 的非常简单的解决方案,第一个是最好的
如果您希望在文本中允许换行符,最好使用秒数。
如果你想使用文本区域解决方案,你可以这样做:(使用 jQuery)
<textarea id="mytextarea"></textarea>
<script>
$('#mytextarea').keypress(function(e)
if(e.keyCode == 13 && !e.shiftKey)
e.preventDefault();
this.form.submit();
);
</script>
这个解决方案的好处是它仍然允许人们进行换行,只要他们在按下回车键时按住 shift 键。就像在 Skype 上一样。
此处的示例:http://jsfiddle.net/MEtGg/
【讨论】:
【参考方案2】:不需要框架(比如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/
【讨论】:
【参考方案3】:当焦点在您的文本区域时,我会在 enter 键上注册一个键侦听器,这是 imo 最常见和最好的方式。
在 jquery 中你可以使用keydown/up method
【讨论】:
【参考方案4】:我会选择第二个。并会使用 javascript 拦截回车键,然后调用函数进行提交。 这个答案应该是这样的:Trigger a button click with JavaScript on the Enter key in a text box
【讨论】:
以上是关于触发文本区域中的输入的主要内容,如果未能解决你的问题,请参考以下文章
在没有插入操作的情况下在 html 文本区域中输入引号和双引号在数据库中失败。可能吗?