【问题标题】:Textarea cannot append to after typeing. Also, cannot append new text键入后无法追加文本区域。此外,不能附加新文本
【发布时间】:2020-04-13 17:20:19
【问题描述】:

我是 javascript 和 jquery 的新手。在学习这一点时,我遇到了一些问题。我想知道我在这里做错了什么。我正在使用 textarea 元素进行输入。当我运行下面的 jQuery 脚本时,它会发布到我称为 read-post 的潜水,但我无法运行 click 函数以附加到 textarea。此外,如果我开始在文本区域中输入,我将无法附加到文本区域。但是,如果我开始 frest 我可以追加到 textarea 没问题。

$(".btn-post").click(function() {
  $("div").append($("textarea").val() + '<br />');
  $("textarea").val('');
  $("textarea").html('');
});

$("div #icon > span").click(function() {
  $(".textarea").append($(this).text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row post-body">
  <div class="col-2 p-0 post-img-holder my-auto p-1">
    <div class="embed-responsive embed-responsive-1by1 text-center">
      <div class="embed-responsive-item">
        <a href="uuid">
          <img class="post-img" src="$imgPath">
        </a>
      </div>
    </div>
  </div>
  <div class="col-10 p-0">
    <textarea class="post-input" type="textblock" placeholder="What do you want to share, uuid?"></textarea>
  </div>
</div>
<div class="row post-footer">
  <div class="col-10 float-left dropdown">
    <a class="dropdown-toggle emoji-icon" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">????</a>
    <div id="emoji-icon" class="dropdown-menu" aria-labelledby="dropdownMenuButton">
      <span>&#x1F600;</span><span>&#x1F603;</span><span>&#x1F604;</span><span>&#x1F601;</span><span>&#x1F606;</span>
      <span>&#x1F605;</span><span>&#x1F923;</span><span>&#x1F602;</span><span>&#x1F642;</span><span>&#x1F643;</span>
    </div>
  </div>
  <div class="col-2 float-right">
    <button class="btn btn-secondary btn-sm btn-post" type="post">Post</button>
  </div>

【问题讨论】:

  • 请把你的html也放上去
  • 当然,没问题。我将编辑这篇文章。
  • @Çağrı - 你去。
  • @Çağrı - 该脚本覆盖了可能已经在框中的文本。它没有附加到文本中。感谢您的回复。
  • 我添加了答案。

标签: javascript jquery


【解决方案1】:

https://jsfiddle.net/hmwLox17/ 你有两个缺少其中一个是你的图标 id 是#emoji-icon 但你只写了#icon, 第二个缺失是你应该写 $("textarea") 但你写了 $(".textarea")

$(".textarea") 表示你有一个类为 textarea 的元素

#icon 表示你有 id 为 icon 的元素

 $("div #emoji-icon > span").click(function(){
       $("textarea").val($("textarea").val()+$(this).text());
   });

【讨论】:

  • 谢谢!它在功能代码中工作。我只是对其进行了编辑,以便于阅读。我有脚本工作。但是,您上面的代码在发布我在 textarea 中写的任何内容后解决了这个问题。谢谢!但是一个问题仍然存在,将 emjoi 下拉列表中的文本附加到 textarea。
  • 如果我先选择表情符号,我就可以写作和发布。但如果我写然后选择一个表情符号它不会追加。
  • 答案中编辑的代码只是用过去的一个值加上一个新的值来创建新的值。
  • 我在编辑器中运行了代码,它和我遇到的一样。我真的很感谢你的帮助!你是摇滚明星。
  • 老兄!你是一个超级英雄!因此,我看到您有两种适用于代码的方法。使用基本的 javascript + append。我没想到你能那样做。你建议阅读什么,以便我可以更多地了解我在做什么?现在我拿起​​这个,因为我被困在家里。上个学期我学习了 PHP,并且在那门课上获得了 A++。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 2014-09-03
  • 2022-08-23
  • 2015-11-25
  • 1970-01-01
  • 2013-05-21
相关资源
最近更新 更多