【问题标题】:Load bootstrap modal from seperate page on button click单击按钮时从单独的页面加载引导模式
【发布时间】:2015-10-02 03:52:06
【问题描述】:

我有一个网页 default.html 包含带有 id ="btn-add" 的按钮和另一个页面 add-students.html 仅包含引导模式。如何在单击按钮 (btn-add) 时在 default.html 中加载模式。

按钮代码:

        <a href="#" class="btn btn-primary" id="btn-add" style="float:right" data-toggle="modal" data-target="#myModal2" ><span class="glyphicon glyphicon-plus"><strong> Add</strong></span>

第一个在从下一页加载页面时自动加载表格。我对模态进行了类似的操作,但没有奏效。

$(document).on("ready", function () {
            //load student table automatically
                $.ajax({
                    url: "ajax/grid/grid-students.html",
                    success: function (result) {
                        $("#data").html(result);
                    }                     

                });
           //load modal 
                $("btn-add").click(function () {
                    $.ajax({
                        url: "ajax/add/add-students.html", success: function (result) {
                            $(document).load(result);
                        }
                    });
                });



       });

我在 add-students 中的模态代码:

 <div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">Applicants</h4>
            </div>
            <div class="modal-body">

                <form role="form">
                    <div class="input-group">
                        <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-asterisk"></span></span>
                        <input type="text" class="form-control" placeholder="ID" aria-describedby="basic-addon1" required>
                    </div><br />
                    <div class="input-group">
                        <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user"></span></span>
                        <input type="text" class="form-control" placeholder="Name" aria-describedby="basic-addon1" required>
                    </div><br />
                    <div class="input-group">
                        <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-envelope"></span></span>
                        <input type="email" class="form-control" placeholder="Email" aria-describedby="basic-addon1" required>
                    </div><br />
                    <div class="input-group">
                        <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-earphone"></span></span>
                        <input type="text" class="form-control" placeholder="Phone Number" aria-describedby="basic-addon1" required>
                    </div>


                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                        <button type="submit" class="btn btn-primary">Save</button>
                    </div>
                </form>

            </div>

        </div>
    </div>
</div>

【问题讨论】:

    标签: jquery html ajax twitter-bootstrap bootstrap-modal


    【解决方案1】:

    当您将 load() 嵌套在 $.ajax 的成功内时,您正尝试发出 2 个 ajax 请求

    您可以使用$.get() 来执行此操作,这是$.ajax 的简写方法,然后在完成回调中打开模式。

    我将首先从按钮中删除数据属性,因为引导程序将无法找到目标,因为它不存在。

    // note invalid selector for button in your code
    $("#btn-add").click(function () {
        // get needed html
        $.get("ajax/add/add-students.html", function (result) {
            // append response to body
            $('body').append(result);
            // open modal
            $('#myModal2').modal(/* options object here*/);
    
        });
    });
    

    您可能还想在每次加载它的 html 之前检查模态元素是否存在,因为 ID 必须是唯一的

    您可以使用以下方式进行检查:

    if(!$('#myModal2').length){
      // load html and open new modal
    }else{
       // just open modal...see docs
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2017-04-30
      相关资源
      最近更新 更多