jquery中的多键按键功能?

时间:2013-04-26 01:43:07

标签: javascript jquery

我有一个textarea字段,当用户按下回车键时提交信息。以下是我的内容:

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

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

    });
});

我想要做的是当用户按下 回车键时提交信息,并在用户按住控制键并按回车键时进行硬回车。 (上面的代码工作正常)我只是不知道如何为按住选项添加其他代码。请解释一下。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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
            }
        }
    });
});