我有一个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/

10-14 02:26