不能使用textarea的Enter键

时间:2015-06-13 17:44:33

标签: javascript jquery html

在我的项目中,我需要输入一些文本框的Enter键,因为我不想在输入键按钮时使用帖子页面。我使用此代码禁用Enter键:

$(document).keypress(
function (event) {
    if (event.which == '13') {
        event.preventDefault();
    }
});

它的工作正常,但是当在页面中添加textarea时,我无法输入断行键,因为Enter键已禁用。

如何为textarea启用Enter键?

2 个答案:

答案 0 :(得分:4)

我不知道是否建议附加全局 keypress处理程序。无论如何,最简单的方法是

$(document).on('keypress', 
function (event) {
    if (event.which == '13' && event.target.tagName != 'TEXTAREA') {
        event.preventDefault();
    }
});

在上文中,您正在检查tagName的{​​{1}},以查看event.target发生的元素是否为enter

但是,我会推荐这种方法

textarea

这会定位所有 $('form').on('keypress', 'form', function (event) { if (event.which == '13') { event.preventDefault(); } }); 元素和 input元素,

答案 1 :(得分:0)

您应该绑定表单以检测Enter键为

    void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason != CloseReason.ApplicationExitCall)
        {
            DialogResult dialog = MessageBox.Show("Are you sure you want to really exit ? ", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dialog == DialogResult.Yes)
            {
                System.Windows.Forms.Application.Exit();
            }
            else if (dialog == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
    }

Here is a demo

通过这种方式,您可以在文本区域使用Enter键而无需提交表单。