代码之家  ›  专栏  ›  技术社区  ›  user1261774

返回键不适用于许多文本区域

  •  0
  • user1261774  · 技术社区  · 7 年前

    我有一个表单,我阻止用户使用enter/return键提交表单。

    我在表单上有两个文本区域,希望允许输入/返回键进行操作。

    我添加了此代码以试图解决此问题( from this thread ):

        $(window).keydown(function(event){
            //if(event.keyCode == 13) {
            if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) {
                event.preventDefault();
                return false;
            }
        });
    

    我引用的线程中的代码不适用于 倍数 文本区域-每个表单只有一个文本区域!

    但是,此代码只适用于第一个文本区域。第二个文本区域中的回车键不起作用。

    我曾多次试图让这个工作超过1个文本区域,但我所有的尝试都失败了。

    有什么建议吗?

    谢谢。

    2 回复  |  直到 7 年前
        1
  •  1
  •   user3354539    7 年前

    试试这个办法。

    它确实使 enter 表单提交的密钥,它允许 进入 在中创建新行的键 全部的 在你的文章中提到的区域。

    $(document).on("keypress", ":input:not(textarea)", function(event) {
        if (event.keyCode == 13) {
            event.preventDefault();
        }
    });
    
        2
  •  0
  •   reisdev    7 年前

    您可以使用if来检查触发事件的节点是否不是 textarea . 如果不是,就不要使用 enter/return

    $(window).keydown(function(event){
       if((event.which== 13) && event.target.nodeName != 'TEXTAREA') {
            event.preventDefault()
            return false;
       }  
    });