2013-04-26 49 views
0

我有一个textarea字段,当用户按下回车键时提交信息。下面是我有:在jquery中的多键按下功能?

$(document)ready(function(){ 
    $('textarea').on('keypress',function(e){ 
     var txt; 
     txt = $(this).val(); 

     if(e.which == 13) 
     { 
      //submit the form 
     } 

    }); 
}); 

我希望做的是当用户按下回车键,做一个硬回车,当用户按下并保持控制键,然后按回车提交信息。 (上面的代码工作正常)我只是不知道如何添加其他代码的按住选项。请解释答案。

+0

你有什么企图?你能显示你试图检测修改键吗? – 2013-04-26 01:46:13

回答

2

您可以使用e.ctrlKey

$(document).ready(function(){ 
    $('textarea').on('keypress',function(e) { 
     var txt=$(this).val(); 

     if(e.which === 13 || e.which === 10) { 
      if (e.ctrlKey) { 
       // handle ctrl-ret here 
      } else { 
       //submit the form 
      } 
     } 
    }); 
}); 

相关的问题在这里:detecting ctrl+tab key press in javascript/jQuery

+0

这就像一个魅力。谢谢! – Bryan 2013-04-26 04:26:42

1

下面是已经做了你问什么解决的办法。 JSfiddle中的代码有一些CSS来显示它的工作原理。当你按下Enter键时,它会改变文本区域的颜色(你将用你的代码替换它来提交),但是当你按下Shift + Enter时,它会创建一个新行并继续编辑。

干杯:d

http://jsfiddle.net/5Kc2T/1/

$(document).ready(function() { 
    $('textarea').on('keypress', function (e) { 
     var txt = $(this); 

     if (e.which == 13) { 
      e.preventDefault(); 
      if (e.shiftKey === true) { 
       txt.val(txt.val() + "\n"); 
      } else { 
       //Submit Code Here 
      } 
     } 
    }); 
}); 
+0

OP需要控制键,而不是换档键。 'event.shiftKey!= event.ctrlKey'。 – RobG 2013-04-26 03:09:57

+0

对不起,我习惯使用Shift + Return作为下一行。即使这个添加评论编辑框也使用它。将上面的简单文本更改为e.ctrlKey,使您在指出RobG时可以进行更改 – 2013-04-30 06:26:22