如果我去这里
http://getbootstrap.com/2.3.2/javascript.html#modals
然后单击“启动演示模态”,即可完成预期的操作。我将模式用作注册过程的一部分,并且涉及服务器端验证。如果有问题,我想将用户重定向到显示我的验证消息的相同模式。目前,除了用户的物理点击之外,我无法确定如何显示模式。如何以编程方式启动模型?
如果我去这里
http://getbootstrap.com/2.3.2/javascript.html#modals
然后单击“启动演示模态”,即可完成预期的操作。我将模式用作注册过程的一部分,并且涉及服务器端验证。如果有问题,我想将用户重定向到显示我的验证消息的相同模式。目前,除了用户的物理点击之外,我无法确定如何显示模式。如何以编程方式启动模型?
Answers:
为了手动显示模式弹出窗口,您必须执行此操作
$('#myModal').modal('show');
以前,您需要使用对其进行初始化,show: false
以便在您手动执行之前不会显示它。
$('#myModal').modal({ show: false})
myModal
模态容器的ID 在哪里。
'<a href='#'>
而导致处理程序内部return false
或失败preventDefault
。浏览器按照指示进行操作,并滚动到默认锚点-页面顶部。我被这个问题咬了好几次,因为我们的CSS有时依赖于href
一套样式来匹配。
如果您正在寻找程序化模式创建,您可能会喜欢这样:
http://nakupanda.github.io/bootstrap3-dialog/
即使Bootstrap的模态为模态创建提供了一种javascript方式,您仍然需要首先编写模态的html标记。
的HTML
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<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">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
JS
$('button').click(function(){
$('#myModal').modal('show');
});
我想这样做angular (2/4)
,这是我所做的:
<div [class.show]="visible" [class.in]="visible" class="modal fade" id="confirm-dialog-modal" role="dialog">
..
</div>`
重要注意事项:
visible
是组件中的变量(布尔值),用于控制模式的可见性。show
并且in
是引导程序类。零件
@ViewChild('rsvpModal', { static: false }) rsvpModal: ElementRef;
..
@HostListener('document:keydown.escape', ['$event'])
onEscapeKey(event: KeyboardEvent) {
this.hideRsvpModal();
}
..
hideRsvpModal(event?: Event) {
if (!event || (event.target as Element).classList.contains('modal')) {
this.renderer.setStyle(this.rsvpModal.nativeElement, 'display', 'none');
this.renderer.removeClass(this.rsvpModal.nativeElement, 'show');
this.renderer.addClass(document.body, 'modal-open');
}
}
showRsvpModal() {
this.renderer.setStyle(this.rsvpModal.nativeElement, 'display', 'block');
this.renderer.addClass(this.rsvpModal.nativeElement, 'show');
this.renderer.removeClass(document.body, 'modal-open');
}
HTML
<!--S:RSVP-->
<div class="modal fade" #rsvpModal role="dialog" aria-labelledby="niviteRsvpModalTitle" (click)="hideRsvpModal($event)">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="niviteRsvpModalTitle">
</h5>
<button type="button" class="close" (click)="hideRsvpModal()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary bg-white text-dark"
(click)="hideRsvpModal()">Close</button>
</div>
</div>
</div>
</div>
<!--E:RSVP-->
以下代码对于在openModal()函数上打开模式并在closeModal()上关闭模式很有用:
function openModal() {
$(document).ready(function(){
$("#myModal").modal();
});
}
function closeModal () {
$(document).ready(function(){
$("#myModal").modal('hide');
});
}
/ * #myModal是模式弹出窗口的ID * /