【问题标题】:How to display text in a dynamically created textarea with jQuery?如何使用 jQuery 在动态创建的文本区域中显示文本?
【发布时间】:2019-01-10 15:05:04
【问题描述】:

我正在使用 jQuery 单击按钮创建一个文本区域。我遇到的问题是 textarea 值不显示,但我可以在控制台中看到该值已设置。我怎样才能使它工作并在动态创建的文本区域中显示文本?

$('.createTextButton').click(function() {

  var mailbody = 'Hello, how are you?';


  $('<textarea>').attr({
    id: 'demomailbody',
    class: 'form-control',
    name: 'demomailbody',
    value: mailbody
  }).appendTo('#pf4');


});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <label>
          <span>Body</span>
          </label>
  <p id="pf4"></p>
</div>

<button class="createTextButton">Create</button>

我在 Inspector 中看到的内容 screenshot

【问题讨论】:

    标签: jquery textarea


    【解决方案1】:

    value 实际上是一个属性而不是一个属性。使用.val() 设置文本。或者你可以(但不推荐)使用.prop('value', mailbody)

    $('.createTextButton').click(function() {
      var mailbody = 'Hello, how are you?';
      $('<textarea>')
        .attr({
          id: 'demomailbody',
          class: 'form-control',
          name: 'demomailbody'
        })
        .val(mailbody)
        .appendTo('#pf4');
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div>
      <label>
        <span>Body</span>
      </label>
      <p id="pf4"></p>
    </div>
    
    <button class="createTextButton">Create</button>

    【讨论】:

    • 是的,这就是答案。谢谢你。我应该看得更深入。
    【解决方案2】:

    文本区域有值属性。

    $('.createTextButton').click(function() {
    
      var mailbody = 'Hello, how are you?';
    
    
      $('<textarea>').attr({
        id: 'demomailbody',
        class: 'form-control',
        name: 'demomailbody'
      }).appendTo('#pf4');
      
      $('textarea').text(mailbody).appendTo('#pf4');
    
    
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div>
      <label>
              <span>Body</span>
              </label>
      <p id="pf4"></p>
    </div>
    
    <button class="createTextButton">Create</button>

    【讨论】:

    • 如果他们创建了多个?你比选择每一个并设置文本......你真的不应该设置文本
    【解决方案3】:

    $("textarea").html("Your Text");

    $("textarea").text("Your Text");

    你可以使用上面的代码。

    jsfiddle.net/cLsd39e1/

    【讨论】:

    • 你不使用 html 作为 textarea
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多