如何选择“.on show.bs.modal”内的触发按钮[Bootstrap modal]

Posted

技术标签:

【中文标题】如何选择“.on show.bs.modal”内的触发按钮[Bootstrap modal]【英文标题】:How to select the triggering button inside '.on show.bs.modal' [Bootstrap modal] 【发布时间】:2018-11-18 11:31:49 【问题描述】:

点击铅笔图标后,我将打开一个模式来编辑输入字段的标签和属性。

$("#myModal").on("show.bs.modal", function(e) 
    let somehtml = ``;
    $(this).find(".modal-body").append(someHtml);
);

我想将 html 或一些值带入输入字段或从我单击以打开模式的按钮周围。 字段不能有唯一标识符。

我可以选择我单击的按钮以打开此事件中的模式。 或者有没有更好的替代方法请说明。

【问题讨论】:

【参考方案1】:

只需自己触发模态show事件:

$(document).ready(() => 
    $("#myBtn").click(e => 
        console.log(e.currentTarget);// your clicked element here
        $("#myModal").modal("show");
    );
    
    
    $("#myModal").on('show.bs.modal', function (e) 
     
    );
);
<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Modal Events - show.bs.modal</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" id="myBtn">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>The <strong>show.bs.modal</strong> event occurs when the modal is about to be shown.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div> 
</div>

</body>
</html>

希望对你有帮助

【讨论】:

我要选择modal的原点(我们点击打开modal的链接或按钮) 这一行coede -->>> $($(e.currentTarget).find('.modal-body')[0]).append(someHtml);与此相同 ->>> $(this).find(".modal-body").append(someHtml); 谢谢@Vasile 很高兴我能帮上忙【参考方案2】:

你可以在 show.bs.modal 中使用 $(e.relatedTarget) 来获取按钮对象

【讨论】:

以上是关于如何选择“.on show.bs.modal”内的触发按钮[Bootstrap modal]的主要内容,如果未能解决你的问题,请参考以下文章

模态框MODAL的一些事件捕捉

bootstrap同一页面上多个模态框

引导模式相关目标未定义

如何使用“Esc”键盘按钮关闭多模式表单?

Bootstrap 模态框强化

模态框-开启关闭事件