附加textarea后,Jquery获取空值

时间:2013-12-21 01:28:53

标签: javascript jquery html css html5

我使用jquery附加<textarea>并得到fallowing:

<textarea class="comment_textarea" placeholder="Comment on this post.." title="Comment on this post.." name="comment_here"></textarea>

当我尝试运行一个函数时:

function makeComment(){
    var comment = $(this).val();
    console.log(comment);
}
$("#newsfeed_posts").bind('keyup', '.comment_textarea', makeComment);

我在我的控制台上得到一个空值,我也尝试从textarea访问不同的属性,但我没有任何东西。当我按下按键时,有人可以帮助我获得价值吗?如果可能的话,当我特意按下输入时?  提前谢谢你。

3 个答案:

答案 0 :(得分:2)

如果您尝试使用事件委派,可以尝试:

$("body").on('keyup', '.comment_textarea', makeComment);

绑定可能是在文本区域是dom的一部分之前发生的,这应该绕过它。

答案 1 :(得分:0)

试试这个:

function makeComment(ele){
   return $(ele).val();
}

$("#newsfeed_posts").keyup(function(){
   var comment = makeComment('.comment_textarea');
   console.log(comment);
});

答案 2 :(得分:0)

你使用了带有错误语法的bind()。

$(selector).bind( eventType [, eventData ], handler(eventObject) )

其他,如果你想使用委托,请使用live(旧版本的Jquery),on(新版本)或delegate() 示例

$( "#foo" ).bind( "click", {
  msg: "Click message"
}, function( event ) {
  alert( event.data.msg );
});

在您的情况下,我认为您可以使用

 $(".comment_textarea").live('keyup', makeComment);
    $("#newsfeed_posts").on('keyup', '.comment_textarea', makeComment);
or  $("#newsfeed_posts").delegate('.comment_textarea','keyup', makeComment);

希望对你有帮助