jQuery Form发布最后一个帖子值

时间:2014-02-01 20:54:38

标签: jquery

我的问题是:当我点击时,每次输入最后发布的值前置到当前帖子值。

  • 首次出现:'abc'点击输入 - > console:abc
  • 第二次出现:'def'命中输入 - > console:abc def
  • 第三次出现:'ghi'命中输入 - > console:abc def ghi ...
  • 依旧

    $(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());
        }
    
      });
    });
    

1 个答案:

答案 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的缓存。我还修改了parentparents的使用来解释任何嵌套输入,但是如果你知道一个事实它将始终是1步,DOM树只使用parent(),如在那里提供标签名称提供了不必要的验证,它确实是一种形式。