将data-id值从按钮传递到模态表单HTML Jquery

zfycwa2u  于 2023-05-17  发布在  jQuery
关注(0)|答案(2)|浏览(92)

我正在尝试将按钮中的data-id的值传递给模态表单。我的代码如下:
脚本:

<script type="text/javascript">  

       $(document).on("click", "open-exampleModal", function () {
             var myBookId = $(this).data('id');
             $(".modal-body #bookId").val($(this).data('id'));
        });
 </script>

打开模态的按钮:

<div class="grid-cell" >
       <span>
          <button type="button" id="btnShowModal" class="btn btn-link btn-square-md" data toggle="modal" data-target="#exampleModal" data-id="B1"></button>
      </span>
    </div>

模态:

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>

      <div class="modal-body" id="modalbody">
        <p>some content</p>
        <input type="text" name="bookId" value=""/>
      </div>

      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

当我单击按钮打开模态时,它成功地打开了模态,但是,它没有使用data-id中的值填充输入。我从一段时间前的另一个答案中获取了代码,并想知道自那时以来是否有潜在的更新。

nue99wik

nue99wik1#

此选择器不匹配HTML中的任何元素:

$(".modal-body #bookId")

因此没有填充值:

$(".modal-body #bookId").val(123);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="modal-body" id="modalbody">
  <input type="text" name="bookId" value=""/>
</div>

但这个可以

$(".modal-body input[name='bookId']").val(123);

示例:

$(".modal-body input[name='bookId']").val(123);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="modal-body" id="modalbody">
  <input type="text" name="bookId" value=""/>
</div>
zxlwwiss

zxlwwiss2#

你在剧本中犯了一个错误。更新脚本:-

$(document).on("click", "#btnShowModal", function () {
     var myBookId = $(this).data('id');
     $(".modal-body #bookId").val($(this).data('id'));
 });

希望对大家有帮助。

相关问题