我试图建立一个评论部分,允许在前端即时预览。
除了提交评论后的行为外,一切正常。
在我的代码中,当用户在文本区域中按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/