我试图建立一个评论部分,允许在前端即时预览。
除了提交评论后的行为外,一切正常。
在我的代码中,当用户在文本区域中按Enter键时,我触发注释的提交,然后通过重置值清除文本区域。
但是,即使我通过声明e.preventDefault()禁用了enter键的默认行为,当重复按enter键时仍会插入新行。
此外,即使在提交之前检查了文本区域的值的长度,我的代码也只接受带有/“\n”的有效内容的注释,因此,如果用户在文本区域中多次按enter键,则可以提交“空”注释。。。
请帮助,我想不出一个解决方案,我正在考虑添加一个帖子按钮,用户必须手动点击它提交。。。
我的小提琴代码:
http://jsfiddle.net/8ve0gLab/2/
我的代码:

$(document).ready(function(){
    $('#comment-input').keydown(function(e){
        var commentContent = $(this).val()
        if (e.which == 13) {e.preventDefault()}
        if (e.which == 13) {
            e.preventDefault()
            if (commentContent.length != 0) {
            $('#comment').append(commentContent)
            $(this).val('')
        }

        else {
            alert('Comment is empty')} /*This line is not working properly*/
        }
    })
})

最佳答案

这可能会解决您的问题:

if (event.keyCode == 10 || event.keyCode == 13){
    event.preventDefault();
}

JS Fiddle Demo

关于javascript - 仅使用<br>阻止textarea提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25517968/

10-16 20:05