如何禁用我的 textarea 上的 ENTER 键?
Posted
技术标签:
【中文标题】如何禁用我的 textarea 上的 ENTER 键?【英文标题】:How can I disable the ENTER key on my textarea? 【发布时间】:2011-10-06 13:13:58 【问题描述】:<form name='qform'>
<textarea name='q' rows='3' cols='60' wrap='hard' id='q' onkeydown="if (event.keyCode == 13) document.getElementById('clickit').click()"></textarea>
<input type='button' value='search' id='clickit' onclick="get();">
</form>
我有这个表单...它没有提交按钮,因为我使用的是 jquery,并且在这个表单下是一个 div 区域,将显示结果。它是一个没有输入框但有一个文本区域的搜索引擎。这是因为它将是一个多词搜索器。
问题是,如果我按下回车键,则提交查询并且一切正常……但是对 textarea 的关注下降了一行,这对我来说是个问题。
基本上我希望输入只有一个功能(提交)结束。
【问题讨论】:
您可以在提交后将焦点放回文本区域。但是如果用户点击“搜索”按钮,焦点不会转到按钮吗? 这能回答你的问题吗? Disable New Line in Textarea when Pressed ENTER 【参考方案1】:$(document).ready(function()
$('textarea').keypress(function(event)
if (event.keyCode == 13)
event.preventDefault();
);
);
【讨论】:
【参考方案2】:如果您不想要多行,为什么不直接使用<input type="text">
?您提到它将是一个“多词搜索器”。为什么这需要<textarea>
?
更新
试试这个
$('textarea').bind('keypress', function(e)
if ((e.keyCode || e.which) == 13)
$(this).parents('form').submit();
return false;
);
【讨论】:
您可能需要将return false;
更改为e.preventDefault()
,以防万一在 DOM 上进一步存在按键绑定
假设你不想要这些绑定,是的 :)
原因:我正在发送短信,它们不能有换行符,但同时我不希望文本框的显示向右滚动——因此文本区域是合适的.
@Andy 假设您在谈论 SMS,通常允许换行。【参考方案3】:
在 jquery 函数中,使用 event.preventdefault ,然后执行您喜欢的操作。 例如
<script>
$("a").click(function(event)
event.preventDefault();
//Do your logic here
);
</script>
http://api.jquery.com/event.preventDefault/
【讨论】:
不错。这对我帮助很大!谢谢!以上是关于如何禁用我的 textarea 上的 ENTER 键?的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用转到下一个字段并在 Android 上的 keyCode == “enter” (13) 上提交表单