我的问题是:当我点击时,每次输入最后发布的值前置到当前帖子值。
依旧
$(document).ready(function() {
$('body').on('keydown', '.form-post-comment', function(event) {
if (event.keyCode == 13 && $(this).val() != '' && !event.shiftKey) {
$(this).parent('form').submit();
console.log($(this).val());
}
});
});
答案 0 :(得分:1)
清除价值观是重要的一部分,但我认为我会提供更优化的方法:
$(function(){
$('.form-post-container').on('keyup','.form-post-comment',function(e){
if((e.which === 13) && this.value && !e.shiftKey){
var self = this;
$(self).parents('form').submit();
console.log(self.value);
self.value = '';
}
});
});
请注意比body
使用更多本地化的容器使用情况,使用e.which
(专门针对跨浏览器的怪癖创建),使用&& this.value
代替&& this.value !== ''
(就像正在做&& this.value
验证它确实有一个值),以及this
的缓存。我还修改了parent
到parents
的使用来解释任何嵌套输入,但是如果你知道一个事实它将始终是1步,DOM树只使用parent()
,如在那里提供标签名称提供了不必要的验证,它确实是一种形式。