如何禁用textarea上的ENTER键?

时间:2011-07-15 23:31:35

标签: javascript jquery events textarea

<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。这是因为它将是一个多字搜索者。

问题在于,如果我按回车键,查询就会被提交,一切正常......但是对textarea的关注会下降一行,这对我来说是一个问题。

基本上我希望输入只有一个函数(提交)结束其他任何东西。

3 个答案:

答案 0 :(得分:10)

如果您不想要多行,为什么不使用<input type="text">?你提到它将是一个“多字搜索者”。为什么这需要<textarea>

<强>更新

试试这个

$('textarea').bind('keypress', function(e) {
  if ((e.keyCode || e.which) == 13) {
    $(this).parents('form').submit();
    return false;
  }
});

答案 1 :(得分:10)

$(document).ready(function() {

    $('textarea').keypress(function(event) {

        if (event.keyCode == 13) {
            event.preventDefault();
        }
    });
});

答案 2 :(得分:9)

在jquery函数中,使用event.preventdefault,然后执行您喜欢的操作。 例如

<script>
$("a").click(function(event) {
  event.preventDefault();
//Do your logic here
});
</script>

http://api.jquery.com/event.preventDefault/