javascript
  • jquery
  • events
  • textarea
  • 2011-07-15 47 views 13 likes 
    13
    <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上的ENTER键?

    问题是,如果我按回车,提交查询,一切都OK ......但对textarea的焦点落在一行,这对我来说是一个问题。

    基本上我想让输入只有一个函数(提交)没有别的。

    +1

    您可以在提交后将焦点放回textarea。但是,如果用户点击“搜索”按钮,无论如何不会将焦点转移到按钮上? – RobG

    回答

    9

    在jQuery的功能,用途event.preventdefault和未来做你喜欢什么。 例如

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

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

    +0

    不错。这帮了我很多!谢谢! – www139

    10

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

    更新

    试试这个

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

    就像在谷歌翻译 – faq

    +0

    查看我的更新回答 –

    +6

    你可能想要''返回false;'为'e.preventDefault()',以防万一DOM按钮绑定进一步向上DOM – qwertymk

    9
    $(document).ready(function() { 
    
    $('textarea').keypress(function(event) { 
    
        if (event.keyCode == 13) { 
         event.preventDefault(); 
        } 
    }); 
    

    });

    相关问题