jQUERY textarea在输入时不会改变价值

时间:2013-11-25 22:50:53

标签: javascript php jquery html

这是我网站的评论脚本,但是jquery / javascript代码的某些部分似乎无法正常工作。

当编辑评论而不是将其发布到php时,我已经做了一个小的通知窗口来测试它是否正在改变传递的值。

Onclick将获取当前评论,并在其中创建带有该评论的文本区域。

现在,如果用户开始更改文本并且他/她点击了编辑按钮,则即使文本完全不同,小测试通知仍会显示原始评论。

请求帮助。

这是代码

$("a.edit").click(function(){
      var eid = $(this).data("id");
      var econtent = $("li[data-id='" + eid + "'] .comment-cont").text();
      $("li[data-id='" + eid + "'] .comment-cont").html('<div class="edit-error"></div><form><textarea class="edit-comment">'+econtent+'</textarea></form><a  href="javascript:;" onclick="notify('+econtent+')" class="editcomment button_yellow">Edit</a>');
      $(".edit-comment").keyup(function(){
            var content = $('.edit-comment').val();
            if (content.length < 3){
                $(".edit-error").show();
                $('.edit-error').html('Content can not be shorter then 3 characters');
                $("a.editcomment").hide();
            }else if(content.length < 300){
                $(".edit-error").hide();
                $('.edit-error').html('')
                $("a.editcomment").show();
            }else{
                $(".edit-error").show();
                $('.edit-error').html('Content can not be longer then 300 characters');
                $("a.editcomment").hide();
            }
    });
    $("a.editcomment").click(function(){
        var edited = $('.edit-comment').text();
        notify(edited);
    });
});

因此,如果用户点击编辑按钮,他/她的评论将进入带有编辑按钮的文本区域。

PS:功能

  

notify()=小通知框。

     

var eid = comment id。

     

var econtent =原始内容

     

var edited =已编辑的内容(仍然是原始内容)。

1 个答案:

答案 0 :(得分:0)

我认为您只需要将$('.edit-comment').text();更改为$('.edit-comment').val();

$("a.editcomment").click(function(){
    var edited = $('.edit-comment').val();
    notify(edited);
});

似乎val() is the preferred way of getting text from a textarea