如何阻止在textarea中输入回车?

时间:2011-05-19 01:04:41

标签: javascript asp.net-mvc textarea keypress

如何在按键事件期间阻止使用asp.net mvc在textarea中输入回车符,换行符,单引号和双引号?

2 个答案:

答案 0 :(得分:27)

您可以使用jquery并订阅textarea的.keypress()事件:

$('textarea').keypress(function(event) {
    // Check the keyCode and if the user pressed Enter (code = 13) 
    // disable it
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

答案 1 :(得分:2)

为了熟悉用户在文本区域内的其他文本/元素的拖放或其中的粘贴文本导致的文本修改,它是必要时也要听change事件。

此外,我建议使用自jQuery 1.7以来可用的.on()方法,并检测用户通过事件对象的event.which属性按下的回车键,以实现实体交叉 - 应用的浏览器行为:

var $textarea = $('#comment');
// events to bind:
$textarea.on('keydown keyup change focus blur', function(e) {
    if (e.type === 'change') {
        // this event is triggered when the text is changed through drag and drop too,
        // or by pasting something inside the textarea;
        // remove carriage returns (\r) and newlines (\n):
        $textarea.val($textarea.val().replace(/\r?\n/g, ''));
    }
    if (e.which === 13) {
        // the enter key has been pressed, avoid producing a carriage return from it:
        e.preventDefault();
    }
});