return-key不适用于许多textareas

时间:2018-06-05 23:44:52

标签: javascript return key textarea

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

我在表单上有两个textareas,我想让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!

但是,此代码仅适用于第一个textarea。第二个textarea中的回车键/返回键不起作用。

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

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:1)

尝试此解决方案。

它会停用表单提交的enter键,并允许enter键在所有 textareas中创建新行,如帖子中所述。

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

答案 1 :(得分:0)

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

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