我注意到新的Facebook发送状态评论的方式。基本上,当您撰写评论时,您没有按钮可点击,但按“输入”键可以按下以提交评论。现在我也想做这件事。我正在考虑可能的解决方案。在我看来,<input>
是在按下回车按钮的情况下提交的,但该文本区域不是。
哪个最好?如果答案是第二,我怎么能这样做?
答案 0 :(得分:8)
这取决于你如何定义最佳。
如果您想要一个不需要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上一样。
答案 1 :(得分:0)
当焦点在你的textarea中时,我会在输入键上注册一个关键的监听器,这是最常见和最好的方式imo。
在jquery中,您可以使用keydown/up method
答案 2 :(得分:0)
不需要一个框架(例如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 :(得分:0)
我会选择第二个。并将使用javascript拦截回车键然后调用函数进行提交。 这个答案应该是这样的:Trigger a button click with JavaScript on the Enter key in a text box