【问题标题】:how can i show input value under another input value like facebook comment?如何在另一个输入值(如 facebook 评论)下显示输入值?
【发布时间】:2020-09-23 05:11:49
【问题描述】:

如何在打印值中创建另一个评论,如 facebook 评论。我希望在提交后显示该值时显示该值回复选项,当我单击回复时,将显示另一个输入框,以便我会再次评论该印刷值,就像 facebook 一样。我希望输入值在提交后会被清除。

谁能帮我找出这个问题?

$(document).ready(function(){
  $("#btn").click(function(){
    let getVal = $("#inputValue").val();
    let img = `<img src="https://images.unsplash.com/photo-1503023345310-bd7c1de61c7d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80" class="rounded-circle" height="30px" width="30px">`
    $("#output").html($("#output").html() + " " + img + getVal + `<br>` );
  });
});
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>


<div id="main">
  <div id="output"></div>    
    <input id="inputValue" type="text" name="text">
  <button id="btn" class="btn btn-primary">display value</button>
</div>

【问题讨论】:

  • 如果你想清除输入使用$("#inputValue").val(""),如果你想能够回复以前的cmets,那么我建议你构造你的html/code。也许使用ul/li
  • 你能给我举个小例子吗...?

标签: javascript html jquery css twitter-bootstrap


【解决方案1】:

$(document).ready(function(){
  var replyHtml = "<br><input type='button' class='reply' value='reply'><div style='display:none;'><input type='text' placeholder='reply'><input type='button' class='rep-submit' value='reply'></div>";
  
  $("#btn").click(function(){
    let getVal = $("#inputValue").val() + replyHtml;
    let img = `<img src="https://images.unsplash.com/photo-1503023345310-bd7c1de61c7d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80" class="rounded-circle" height="30px" width="30px">`
    $("#output").html($("#output").html() + " " + img + getVal + `<br>` );
    $("#inputValue").val('')
  });
  
  $(document).on('click', '.reply', function(){
    $(this).next().show();
    $(this).remove();
  });
  
  $(document).on('click', '.rep-submit', function(){
    var reply = $(this).prev().val();
    $(this).closest('div').html(reply + replyHtml);
  });
});
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>


<div id="main">
  <div id="output"></div>    
    <input id="inputValue" type="text" name="text">
  <button id="btn" class="btn btn-primary">display value</button>
</div>

【讨论】:

    【解决方案2】:

    可以通过这样的方式完成-

    $(document).ready(function(){
      $("#btn").click(function(){
        let getVal = $("#inputValue").val();
        let img = `<img src="https://images.unsplash.com/photo-1503023345310-bd7c1de61c7d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80" class="rounded-circle" height="30px" width="30px">`
        let replyInput = '<div class="ml-5"><input type="text" id="replyText">&nbsp;&nbsp;<button class="btn btn-primary" type="button" id="reply">reply</button></div>'
        $("#output").html($("#output").html() + " " + img + getVal + `<br>`+ replyInput );
      });
    });
        <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <!-- Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <!-- Latest compiled JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    
    
    <div id="main">
      <div class="m-5" id="output"></div>    
        <input id="inputValue" type="text" name="text">
      <button id="btn" class="btn btn-primary">display value</button>
    </div>

    【讨论】:

    • 不,回复的值也会打印出来
    • 这样可以吗?
    • 是可以的,只需要动态映射每个回复输入框和按钮与其父评论。你已经在上面的代码中回答了。只需使用 DOM 操作来实现它。
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 2022-01-06
    • 2012-12-07
    • 1970-01-01
    • 2014-10-21
    • 2016-10-30
    • 2011-09-13
    相关资源
    最近更新 更多