return-键不适用于许多文本区域

return-key not working for many textareas

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

我在表单上有两个文本区域,我想让 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;
        }
    });

我引用的线程中的代码不适用于 多个 textareas - 每个表单仅适用于一个 textarea!

但是,此代码仅适用于第一个文本区域。第二个文本区域中的 enter/return 键不起作用。

我曾多次尝试让它在 1 个以上的文本区域中工作,但我所有的尝试都失败了。

有什么建议吗?

谢谢。

您可以使用 if 来检查触发事件的节点是否不是 textarea。如果不是,则不允许使用 enter/return

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

试试这个解决方案。

它确实禁用了表单提交的 enter 键,并且它确实允许 enter 键在 all 文本区域中创建新行,如中所述你的 post.

$(document).on("keypress", ":input:not(textarea)", function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});