如何禁用textarea上的ENTER键?

faq*_*faq 16 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>
Run Code Online (Sandbox Code Playgroud)

我有这个表单...它没有提交按钮,因为我使用的是jquery,在这个表单下面是一个显示结果的div区域.它是一个搜索引擎,没有输入框,而是有一个textarea.这是因为它将是一个多字搜索者.

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

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

小智 12

$(document).ready(function() {

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

        if (event.keyCode == 13) {
            event.preventDefault();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)


Mic*_*ior 11

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

更新

试试这个

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

  • 您可能希望将`return false;`更改为`e.preventDefault()`,以防万一有进一步向上的按键绑定 (6认同)

Nul*_*ead 10

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

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

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