单击按钮从单独的页面加载 bootstrap 模态
Load bootstrap modal from seperate page on button click
我有一个网页 default.html
包含带 id ="btn-add"
的按钮和另一个页面 add-students.html
仅包含 bootstrap 模式。如何在单击按钮 (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>
第一个在从下一页加载页面时自动加载 table。我对模态做了类似的操作,但没有用。
$(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">×</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>
当您在 $.ajax
的 success 中嵌套 load()
时,您正在尝试发出 2 个 ajax 请求
您可以使用 $.get()
执行此操作,这是 $.ajax
的 shorthand 方法,然后在完成回调中打开模式。
我会先从按钮中删除数据属性,因为 bootstrap 将无法找到目标,因为它不存在。
// 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
}
我有一个网页 default.html
包含带 id ="btn-add"
的按钮和另一个页面 add-students.html
仅包含 bootstrap 模式。如何在单击按钮 (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>
第一个在从下一页加载页面时自动加载 table。我对模态做了类似的操作,但没有用。
$(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">×</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>
当您在 $.ajax
load()
时,您正在尝试发出 2 个 ajax 请求
您可以使用 $.get()
执行此操作,这是 $.ajax
的 shorthand 方法,然后在完成回调中打开模式。
我会先从按钮中删除数据属性,因为 bootstrap 将无法找到目标,因为它不存在。
// 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
}