在模式窗口中 Bootstrap 数据接收器

我目前使用的是 Bootstrap 框架,当使用模态窗口时,我无法克服 js 元素的工作原理,比如数据采集器或验证,尽管选择和统一渲染是正确的。请看下面我的模态窗口:

  <div class="modal hide in" id="newMember" style="display: block; " aria-hidden="false">
<div class="modal-header">
<button class="close" data-dismiss="modal" type="button">×</button>
<h3>New Member Form</h3>
</div>
<form accept-charset="UTF-8" action="/players" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="KdL6cc2Vb53qeMY+PpBUS70myT4HX1uWofMUBolLea8="></div>
<div class="modal-body">
<div class="widget-content nopadding">
<div class="control-group">
<label class="control-label" for="user_role">Role</label>
<div class="controls">
<select id="user_role" name="user[role]" style="display: none; " class="chzn-done"><option value="">Select member role</option>
<option value="1">Player</option>
<option value="2">Coach</option>
<option value="3">Parent</option>
<option value="4">Manager</option>
<option value="5">Non-player</option></select><div id="user_role_chzn" class="chzn-container chzn-container-single" style="width: 222px; "><a href="javascript:void(0)" class="chzn-single"><span>Select member role</span><div><b></b></div></a><div class="chzn-drop" style="left: -9000px; width: 220px; top: 0px; "><div class="chzn-search" style=""><input type="text" autocomplete="off" style="width: 212px; "></div><ul class="chzn-results"><li id="user_role_chzn_o_0" class="active-result result-selected" style="">Select member role</li><li id="user_role_chzn_o_1" class="active-result" style="">Player</li><li id="user_role_chzn_o_2" class="active-result" style="">Coach</li><li id="user_role_chzn_o_3" class="active-result" style="">Parent</li><li id="user_role_chzn_o_4" class="active-result" style="">Manager</li><li id="user_role_chzn_o_5" class="active-result" style="">Non-player</li></ul></div></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_full_name">Full name</label>
<div class="controls">
<input id="user_first_name" name="user[first_name]" placeholder="First Name" size="30" type="text">
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_last_name">Last name</label>
<div class="controls">
<input id="user_last_name" name="user[last_name]" placeholder="Last Name" size="30" type="text">
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_email">Email</label>
<div class="controls">
<input id="user_email" name="user[email]" placeholder="Email Address" size="30" type="text">
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_date_of_birth">Date of birth</label>
<div class="controls">
<input class="datepicker" data-date-format="dd/mm/yyyy" id="user_dob" name="user[dob]" placeholder="dd/mm/yyyy" readonly="readonly" size="30" type="text">
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_gender">Gender</label>
<div class="controls">
<select id="user_gender" name="user[gender]" style="display: none; " class="chzn-done"><option value="">Select gender</option>
<option value="Male">Male</option>
<option value="Female">Female</option></select><div id="user_gender_chzn" class="chzn-container chzn-container-single" style="width: 222px; "><a href="javascript:void(0)" class="chzn-single"><span>Select gender</span><div><b></b></div></a><div class="chzn-drop" style="left: -9000px; width: 220px; top: 0px; "><div class="chzn-search" style=""><input type="text" autocomplete="off" style="width: 212px; "></div><ul class="chzn-results"><li id="user_gender_chzn_o_0" class="active-result result-selected" style="">Select gender</li><li id="user_gender_chzn_o_1" class="active-result" style="">Male</li><li id="user_gender_chzn_o_2" class="active-result" style="">Female</li></ul></div></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_team">Team</label>
<div class="controls">
<select id="user_team_id" name="user[team_id]" style="display: none; " class="chzn-done"><option value="">None</option>
<option value="4">Metro 3 East</option>
<option value="1">State League 3</option>
<option value="2">State League 4</option>
<option value="3">Metro 3 South</option>
<option value="5">Pennant E</option>
<option value="6">Under 9 White</option>
<option value="7">Under 9 Navy</option>
<option value="8">Under 13 Pennant South East</option>
<option value="9">Under 17 Pennant South East</option>
<option value="10">Under 15 South (1)</option>
<option value="11">Under 11 Pennant South East</option>
<option value="12">Under 11 South</option></select><div id="user_team_id_chzn" class="chzn-container chzn-container-single" style="width: 222px; "><a href="javascript:void(0)" class="chzn-single"><span>None</span><div><b></b></div></a><div class="chzn-drop" style="left: -9000px; width: 220px; top: 0px; "><div class="chzn-search" style=""><input type="text" autocomplete="off" style="width: 212px; "></div><ul class="chzn-results"><li id="user_team_id_chzn_o_0" class="active-result result-selected" style="">None</li><li id="user_team_id_chzn_o_1" class="active-result" style="">Metro 3 East</li><li id="user_team_id_chzn_o_2" class="active-result" style="">State League 3</li><li id="user_team_id_chzn_o_3" class="active-result" style="">State League 4</li><li id="user_team_id_chzn_o_4" class="active-result" style="">Metro 3 South</li><li id="user_team_id_chzn_o_5" class="active-result" style="">Pennant E</li><li id="user_team_id_chzn_o_6" class="active-result" style="">Under 9 White</li><li id="user_team_id_chzn_o_7" class="active-result" style="">Under 9 Navy</li><li id="user_team_id_chzn_o_8" class="active-result" style="">Under 13 Pennant South East</li><li id="user_team_id_chzn_o_9" class="active-result" style="">Under 17 Pennant South East</li><li id="user_team_id_chzn_o_10" class="active-result" style="">Under 15 South (1)</li><li id="user_team_id_chzn_o_11" class="active-result" style="">Under 11 Pennant South East</li><li id="user_team_id_chzn_o_12" class="active-result" style="">Under 11 South</li></ul></div></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_mobile">Mobile</label>
<div class="controls">
<input id="user_mobile" maxlength="10" name="user[mobile]" placeholder="i.e 0421813529" size="10" type="tel">
<span class="help-block">
<input name="user[private_mobile]" type="hidden" value="0"><div class="checker" id="uniform-user_private_mobile"><span><div class="checker" id="uniform-user_private_mobile"><span><input id="user_private_mobile" name="user[private_mobile]" type="checkbox" value="1" style="opacity: 0; "></span></div></span></div>
<a href="javascript:void(0)" class="tip-bottom" data-original-title="Normally, all members of the team can see this information. If you don't want teammates to see this information, just click this checkbox. (Note: Team managers will always see this information.)">Private</a>
</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_manager_access">Manager access</label>
<div class="controls">
<input name="user[manager]" type="hidden" value="0"><div class="checker" id="uniform-user_manager"><span><div class="checker" id="uniform-user_manager"><span><input id="user_manager" name="user[manager]" type="checkbox" value="1" style="opacity: 0; "></span></div></span></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_admin_access">Admin access</label>
<div class="controls">
<input name="user[admin]" type="hidden" value="0"><div class="checker" id="uniform-user_admin"><span><div class="checker" id="uniform-user_admin"><span><input id="user_admin" name="user[admin]" type="checkbox" value="1" style="opacity: 0; "></span></div></span></div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div class="pull-right">
<input class="btn btn-primary" name="commit" type="submit" value="Create User">
<a class="btn btn-danger" data-dismiss="modal" href="#">Cancel</a>
</div>
</div>
</form>
</div>
170286 次浏览

正如 McCanf他的评论中所说:

我建议您查看您的引导 CSS 和 JS。您的模型被设置为一个非常高的 z 索引值(99999)。把我的小提琴和你的比较一下

在类数据采集器中将 z-index 添加到1051以上

在页面或 CSS 中添加类似的内容

<style>
.datepicker{z-index:1151 !important;}
</style>

对我来说,它只在 CSS 中的重要部分起作用

.datepicker {z-index: 1151 !important;}

试试这个

#ui-datepicker-div {
z-index: 100000;
}

尝试将 .modal.modal-backdrop的 z-index 值更改为小于 .datepicker的 z-index 值。

你能改变你的 css 文件 bootstrap-timepicker/css/bootstrap-timepicker.css

来自

.bootstrap-timepicker-widget.dropdown-menu.open {
display: inline-block;
}

.bootstrap-timepicker-widget.dropdown-menu.open {
display: inline-block;
z-index:1151;
}

我用:

body.modal-open .datepicker {
z-index: 1200 !important;
}

这样: 如果模式 不是打开,并且您希望数据采集器处于正常的 z-index (在我的例子中,我需要它位于菜单下拉菜单下拉列表中,该菜单下拉列表的 z-index 为1000) ,那么它就可以工作。

如果模式 打开,数据收集器需要位于模式 z-index (1040或1050)之上,因此使用 body.modal-open选择器。

我正在使用 Bootstrap 3.1.1

如果您使用引导程序 V3,请尝试这个。


.bootstrap-datetimepicker-widget
{
z-index: 1200   !important;
}

对于 BootsTrap 日历,请使用此

/日历索引/

.bootstrap-datetimepicker-widget {
z-index:99999 !important;
}

我认为最好改变插件中的逻辑函数。在第552行左右我改变这个:

            var zIndex = parseInt(this.element.parents().filter(function(){
return $(this).css('z-index') !== 'auto';
}).first().css('z-index'))+10;

变成这样:

            var zIndex = parseInt(this.element.parents().filter(function(){
return $(this).css('z-index') !== 'auto';
}).first().css('z-index')) + 10 * 1000; //think is enought

在 ui-datepicker 类中添加 z-indexz

<style>
.ui-datepicker{ z-index:1151 !important; }
</style>
$('#effective_to').datepicker({
dateFormat: "dd-mm-yyyy",
changeMonth: true,
changeYear: true,
beforeShow: function() {
$('#ui-datepicker-div').addClass('datepicker');
}
});

CSS

.datepicker {
z-index: 100000 !important;
display: block;
}

这对我很有用,尽管我用 Ajax 打电话给模特

试试这段代码。

.ui-datepicker{ z-index:1151 !important; }

当你使用 引导 V3的时候就可以解决这个问题

根据 http://www.daterangepicker.com/(选项)

$('#dispatch_modal').on('shown.bs.modal', function() {
$('input:text:visible:first').focus();
// prepare datepicker
$('.form_datepicker').daterangepicker({
singleDatePicker: true,
showDropdowns: true,
parentEl: '#dispatch_modal'
});
});

`

父母解决了我的问题。

对于 Bootstrap 3.x 和 Ace 模板 包装鞋带

模态内部的数据采集器和计时器

<style>
body.modal-open .datepicker {
z-index: 1050 !important;
}
body.modal-open .bootstrap-timepicker-widget {
z-index: 1050 !important;
}
</style>

让我帮你,

您可以更新 bootstrap.min.css

在类下拉菜单中,你可以将 z 索引值改为2000

所以数据采集器会出现

尝试使用这个代码,它为我工作。 从它来自这个网站的方式 Https://github.com/eternicode/bootstrap-datepicker/issues/464 .

$('#datepicker').datepicker().on('show', function () {
var modal = $('#datepicker').closest('.modal');
var datePicker = $('body').find('.datepicker');
if (!modal.length) {
$(datePicker).css('z-index', 'auto');
return;
}
var zIndexModal = $(modal).css('z-index');
$(datePicker).css('z-index', zIndexModal + 1);
});

我有这个错误,因为我滚动底部。数据采集器在固定时顶部位置错误。我现在用的是:

$('#myModal').on('show.bs.modal', function (e) {
$(document).scrollTop(0);
});

现在运行良好。

Fwiw. 死人,但还是死人。

<link href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css" rel="stylesheet">

我需要

<style type="text/css">
.ui-timepicker-container {z-index: 1151 !important;}
</style>

让它接受超驰控制

我在这里尝试了几乎所有其他的解决方案。

这个解决方案非常适合我在引导模式之上渲染数据采集器。

Http://jsfiddle.net/cmpgtuwy/654/

超文本标示语言

<br/>
<div class="wrapper">
Some content goes here<br />
Some more content.
<div class="row">
<div class="col-xs-4">


<!-- padding for jsfiddle -->
<div class="input-group date" id="dtp">
<input type="text" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon-calendar glyphicon"></span>
</span>
</div>
</div>
</div>
</div>

Javascript

$('#dtp').datetimepicker({
format: 'MMM D, YYYY',
widgetParent: 'body'});




$('#dtp').on('dp.show', function() {
var datepicker = $('body').find('.bootstrap-datetimepicker-widget:last');
if (datepicker.hasClass('bottom')) {
var top = $(this).offset().top + $(this).outerHeight();
var left = $(this).offset().left;
datepicker.css({
'top': top + 'px',
'bottom': 'auto',
'left': left + 'px'
});
}
else if (datepicker.hasClass('top')) {
var top = $(this).offset().top - datepicker.outerHeight();
var left = $(this).offset().left;
datepicker.css({
'top': top + 'px',
'bottom': 'auto',
'left': left + 'px'
});
}
});

CSS

.wrapper {
height: 100px;
overflow: auto;}
body {
position: relative;
}
// re initialze datepicker
$(".bootstrap-datepicker").bsdatepicker({
format: "yyyy-mm-dd",
autoclose: true,
}).on('changeDate', function (ev) {
$(this).bsdatepicker('hide');
});
//
$(".dropdown-menu").css({'z-index':'1100'});

将您的数据采集器 JavaScript 代码包装在内部

function pageLoad() {}