我需要帮助在JQuery中获取textarea的值

时间:2011-07-31 11:07:58

标签: javascript jquery html

我正在建立一个评论系统,每个评论textarea都有一个独特的类。 我的代码 -

$(".ccoomm").click(function() {
var pid = $(this).attr("id");
var tt = $("textarea ."+pid).val();
var email = $("#hidden").val();
var data = "pid=" + pid + "&text=" + tt + "&email=" + email;
$("#flash").show();
$("#flash").fadeIn(500).html('<img src="wamp.gif" /> Loading...');
$.ajax({
    type: "POST",
    url: "comments.php",
    data: data,
    cache: false,
    success: function(html) {
        $(".coments"+pid).append(html);
        $("#flash").fadeOut(100);
        $("#tt").val("");
        $(".comments"+pid).slideToggle(100);
        $(this).toggleClass("active");
    }
});

});

我无法获得textarea值....它说“未定义”

html / php -

echo <li><textarea cols='20' rows='1' class='tt' id='".$comid."' placeholder='Comment..'/></textarea><input type='submit' value='Comment' id='ccoomm' class='".$comid."' /></li>";
    echo "</ul>";

4 个答案:

答案 0 :(得分:0)

我认为你在这一行上放了一个额外的空格(这意味着获得属于textarea后代的特定类的所有元素)

 var tt = $("textarea ."+pid).val();

应该是(这意味着选择具有该特定类的所有textarea)

 var tt = $("textarea."+pid).val();

答案 1 :(得分:0)

var pid = $(this).attr("id");

您正在获取您点击的元素的ID

var tt = $("textarea ."+pid).val();

您正在尝试使用您作为课程选择的ID

答案 2 :(得分:0)

不确定,但您希望在价值选择中id之后添加textarea吗?

现在,您似乎在选择class

var pid = $(this).attr("id");
var tt = $("textarea ."+pid).val();

如果您希望id将第二行更改为

var tt = $("textarea#"+pid).val();

修改

查看编辑中提供的HTML,可以将行更改为

var tt = $("textarea.tt").val();

答案 3 :(得分:0)

我可以看到,你想要切换你点击的元素的类。

在函数$ .Ajax中,这并不是指你在click函数中单击的元素,你应该将它赋给变量并仅引用该变量。

echo <li><textarea cols='20' rows='1' class='tt' id='".$comid."' placeholder='Comment..'/></textarea><input type='submit' value='Comment' id='ccoomm' class='".$comid."' /></li>";
echo "</ul>";

$(".ccoomm").click(function() {
    var self = this;  
    var pid = $(self).attr("class");
    var tt = $("textarea#"+pid).val();
    var email = $("#hidden").val();
    var data = "pid=" + pid + "&text=" + tt + "&email=" + email;  

    $("#flash").show();
    $("#flash").fadeIn(500).html('<img src="wamp.gif" /> Loading...');
    $.ajax({
        type: "POST",
        url: "comments.php",
        data: data,
        cache: false,
        success: function(html) {
            $(".coments"+pid).append(html);
            $("#flash").fadeOut(100);
            $( tt ).val("");
            $(".comments"+pid).slideToggle(100);
            $(self).toggleClass("active");
        }
    });
});