如何获取动态填充输入的值ajax

时间:2017-10-17 05:25:31

标签: php jquery ajax codeigniter

我有一个动态填充的textarea,

<textarea class="materialize-textarea validate addCommentTxt" 
value="" data-length="250" required  name="addCommentTxt"></textarea> 

我的问题是每当我尝试使用以下代码获取ajax中textarea的值时:

$('.btnCommentSubmit').click(function(e){
    e.preventDefault();
    var comment_identifier = $(this).data("value");
    var comment_by = $(this).data("id");
    $('#formAddComment').attr('action', '<?php echo base_url() ?>Discussion/addComment/');
    var url = $('#formAddComment').attr('action');
    var addCommentTxt = $('.addCommentTxt').val(); //GET THE VALUE OF TEXT AREA
    $.ajax({
        type: 'post',
        url: url,
        data: {
            addCommentTxt:addCommentTxt,
            comment_identifier:comment_identifier,
            comment_by:comment_by,
        },
        success: function(){
            alert("scs");
            showAllComments(comment_identifier);
        },
        error: function(){
            console.log(data);
            alert('Could not add data');
        }
    });

});

我得到的值来自第一个填充的textarea,而不是我发送数据的textarea。

例如: Textarea 1 - 我已经发送了一个&#34;第一个String&#34;评论并已成功插入。

Textarea 2 - 我发送了第二个字符串&#34;注释,但插入的数据将是&#34; first String&#34;这是来自textarea 1而不是textarea 2

1 个答案:

答案 0 :(得分:0)

您需要获得与addCommentTxt相对的btnCommentSubmit,因此请使用最接近您的父表单,然后使用find获取textarea值

var addCommentTxt = $(this).closest('form').find('.addCommentTxt').val();