【问题标题】:Bootstrap Modal ConfirmationBootstrap 模态确认
【发布时间】:2016-04-30 13:56:47
【问题描述】:

我有一个表格,它显示每行的用户详细信息以及一个启动引导模式确认对话框的删除按钮。

我的目标是让确认按钮触发一个事件,该事件将删除该特定用户。

如何将 jsmith22 从表格行传递到我的 Javascript 函数中?

HTML 表格

<tr>
    <td>jsmith22</td>
    <td>John Smith</td>
    <td>555-555-5555</td>
    <td>test@gmail.com</td>
    <td><button type="button" class="btn btn-default btn-lg btn-block roster-button active" data-toggle="modal" data-target="#removeUser">Remove</button></td>
</tr>

模态对话框

<div aria-labelledby="myModalLabel" class="modal fade" id="removeUser"
role="dialog" tabindex="-1">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Remove Employee</h4>
            </div>
            <div class="modal-body">
                <p>Are you sure you wish to remove this user?</p>
            </div>
            <div class="modal-footer">
                <button class="btn btn-default" data-dismiss="modal" type="button">Cancel</button>
                <button class="btn btn-danger" id="remove-button" type="submit">Remove</button>
            </div>
        </div><!-- end modal-content -->
    </div><!-- end modal-dialog -->
</div><!-- end modal -->

Javascript

// Remove button event trigger
$('#remove-button').click(function() {
        $.post('/API/removeUser', {} );
});

【问题讨论】:

    标签: javascript jquery html bootstrap-modal


    【解决方案1】:

    可以用Bootstrap Modal event listener做到这一点

    模态触发按钮添加数据属性data-id

    <td><button type="button" data-id="jsmith22" data-toggle="modal" data-target="#removeUser" class="btn btn-default btn-lg btn-block roster-button active">Remove</button></td>
    

    将输入 type="hidden" 添加到模态并在显示时将 id 值传递给模态隐藏输入

    隐藏输入

    <input type="hidden" id="RowId" value="">
    

    模态事件show脚本

    $(document).ready(function(){
        $('#removeUser').on('show.bs.modal', function (e) {
            var id = $(e.relatedTarget).data('id');
            $('#RowId').val(id);
         });
    });
    

    现在有click 事件

    $('#remove-button').click(function() {
            var delid = $('#RowId').val();
            //Do what ever you like to do
            $.post('/API/removeUser', {} );
    });
    

    Fiddle Example


    替代解决方案

    您可以跳过hidden 输入并创建一个全局变量

    带有数据属性data-id的模态触发按钮到模态触发按钮

    <td><button type="button" data-id="jsmith22" data-toggle="modal" data-target="#removeUser" class="btn btn-default btn-lg btn-block roster-button active">Remove</button></td>
    

    模态事件,带有全局变量脚本的点击函数

    $(document).ready(function() {
      var delid = ''; //global variable
      $('#removeUser').on('show.bs.modal', function(e) {
        delid = $(e.relatedTarget).data('id'); //fetch value of `data-id` attribute load it to global variable
        alert(delid);
      });
    
      $('#remove-button').click(function() {
        alert(delid); //Use the global variable here to del the record
        //Do what ever you like to do
        //$.post('/API/removeUser', {} );
      });
    });
    

    Alternate Solution Example

    【讨论】:

    • 谢谢!正是我需要的。
    【解决方案2】:

    您可以通过以下方式获取按钮行的第一个td 的内容:

    var person = $(this).closest('tr').find('td').eq(0).html()
    

    小提琴:https://jsfiddle.net/7j4bmgbv/

    【讨论】:

      猜你喜欢
      • 2020-12-20
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多