获取附加文本区域的值

时间:2014-12-31 06:06:13

标签: javascript jquery

我用一个按钮附加一个textarea

$(".mydiv").append("<textarea id='myTextarea'></textarea><div class='sendReply btn btn-default'>my button</div>");

之后,我正在将新文本写入textarea并试图通过点击功能在textarea中获取新的写入值;

jQuery(document).on('click','.sendReply', function () {
  var myNewText =  $("#myTextarea").val();
    console.log(myNewText);
  });

但它说这是一个“空字符串”,如果我添加一个像<textarea id="myTextarea">some text</textarea>这样的值的文本区域,我的功能可以工作并给我“一些文本”,但如果我编辑textarea并单击sendReply按钮(我的话点击功能),它仍然给我“一些文字”,它不会改变

如何在应用textarea之后获得编辑的textarea值?

3 个答案:

答案 0 :(得分:3)

附加HTML时,.中有.sendReply

您只需从.

中删除.sendReply即可

使用

<div class='sendReply btn btn-default'>my button</div>"

当您使用事件委托时,您的jQuery将起作用。

由于您多次添加具有相同ID的textarea? $("#myTextarea").val()将始终显示ID为 myTextarea 的第一个textarea的值。您可以使用公共类,然后使用prev()选择textarea

参见示例

$(document).ready(function() {

  $(document).on('click', '.sendReply', function() {
    var myNewText = $(this).prev(".myTextarea").val();
    alert(myNewText);
  });
  for (var i = 0; i < 5; i++) {
    $(".mydiv").append("<textarea class='myTextarea'>some text</textarea><div class='sendReply btn btn-default'>my button</div>");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mydiv'></div>

答案 1 :(得分:1)

应该是

$(".mydiv").append("<textarea id='myTextarea'></textarea><div class='sendReply btn btn-default'>my button</div>");

然后

jQuery(document).on('click','.sendReply', function () {
  var myNewText =  $("#myTextarea").val();
    console.log(myNewText);
  });

不要使用点(。)作为类名..

答案 2 :(得分:1)

而是使用div ..使用一些标准来编码..你可以让它有按钮..这里是代码

<div class="mydiv"></div>

$(".mydiv").append("<textarea id='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input>");
jQuery(document).on('click','.sendReply', function () {
  var myNewText =  $("#myTextarea").val();
    console.log(myNewText);
    alert(myNewText);
  });

<强> JSFIDDLE