javascript - 按键时换行

标签 javascript jquery textarea onkeydown

我有一个文本区域,每次输入时我希望它在写入内容时变为空白。但我的问题是;在第一行输入换行符,然后从第二行继续写入。它只发生在第一次进入时。清空textarea没有问题,只是从第二行继续写,这就是问题所在。

onkeydown= if(event.keyCode == 13){

    sendMessage();
}

function sendMessage(user){

    var message = $('#textarea').val();
    $('#textarea').val('');
}

最佳答案

if(event.keyCode == 13) {
    sendMessage();
    if (event.preventDefault) event.preventDefault();
    return false;
}

keydown 发生在将字符输入到 textarea 之前,因此您只需调用 preventDefault在事件上,以便在调用清除文本区域的函数后它不会输入换行符。如果上面的代码内联在 HTML 中,那么仅 return false 就足够了,但实际上并不推荐这样做。请参阅下面更新的解决方案:

<小时/>

为了不引人注目和向后兼容,我建议使用 jQuery 来完成这一切:

$('#textarea_ID').keydown(function(e) {
    if (e.which == 13) {
        e.preventDefault();
        var message = $(this).val();
        $(this).val('');
        //rest of your function using `message` here
    }
});

Fiddle

关于javascript - 按键时换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14094526/

相关文章:

javascript - 当分解成组件时,登录表单 React 不起作用

java - 填充文本区域后将其滚动到顶部

jquery - 使用 jquery 获取前一个 p 标签来更改背景

jQuery UI 小部件 : How can I get the widget's container?

angularjs - 如何在angular JS中限制textarea中的单词

javascript - Imperavi Redactor 内容未复制到隐藏文本区域

javascript - 有没有比我在这里使用 window.setInterval() 更干净的方法来重新运行 api 调用?

javascript - 当其他数组的序列发生变化时,如何使数组自动更改?

javascript - 使用 Javascript 动态显示数字

jquery - CSS3动画淡出一个图像并淡入另一个图像