jquery - 在 Bootstrap 模式中实现 jQuery DatePicker

标签 jquery twitter-bootstrap twitter-bootstrap-3 jquery-ui-datepicker

为我的问题创建了 jsfiddle http://jsfiddle.net/sudiptabanerjee/93eTU/

在模式窗口中,问题在于“更改月份”和“更改年份”组合。

a) IE 11:一切都按预期运行 b) Chrome 版本 31,在月份组合选择时, Bootstrap 模式隐藏。 c) Firefox v26,月份和年份下拉菜单不起作用。

请帮忙。

HTML

<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">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-hidden="true">&times;</button>
             <h4 class="modal-title" id="myModalLabel">Modal title</h4>

        </div>
        <div class="modal-body">
            <div class="col-md-12">
                <div class="row">
                    <label for="idTourDateDetails">Tour Start Date:</label>
                    <div class="form-group">
                        <div class="input-group">
                            <input type="text" name="idTourDateDetails" id="idTourDateDetails" readonly="readonly" class="form-control clsDatePicker"> <span class="input-group-addon"><i id="calIconTourDateDetails" class="glyphicon glyphicon-th"></i></span>

                        </div>
                    </div>Alt Field:
                    <input type="text" name="idTourDateDetailsHidden" id="idTourDateDetailsHidden">
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
        <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
</div>
<!-- /.modal -->

CSS

.clsDatePicker {
z-index: 100000;
}

JS

 $('#idTourDateDetails').datepicker({
 dateFormat: 'dd-mm-yy',
 minDate: '+5d',
 changeMonth: true,
 changeYear: true,
 altField: "#idTourDateDetailsHidden",
 altFormat: "yy-mm-dd"
});

最佳答案

这是因为模式强制将焦点集中在自身上。这是如上所述的解决方案 here 。将以下脚本添加到您的 js 文件中。就是这样。

<强> Working Demo

jQuery

// Since confModal is essentially a nested modal it's enforceFocus method
// must be no-op'd or the following error results 
// "Uncaught RangeError: Maximum call stack size exceeded"
// But then when the nested modal is hidden we reset modal.enforceFocus
var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus;

$.fn.modal.Constructor.prototype.enforceFocus = function() {};

$confModal.on('hidden', function() {
    $.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn;
});

$confModal.modal({ backdrop : false });

对于 Bootstrap 4:

replace : $.fn.modal.Constructor.prototype.enforceFocus
By: $.fn.modal.Constructor.prototype._enforceFocus

关于jquery - 在 Bootstrap 模式中实现 jQuery DatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059598/

相关文章:

JavaScript - 找到最后一部分 "foo[biz][bar]"的优雅方式

javascript - 通过多个文件更新同一变量

javascript - 使用 Bootstrap 和 Masonry 在页面上移动元素

google-maps - Google Map Api - 谷歌地图在第二次加载后无法正确显示

html - 移动设备上的 Twitter Bootstrap 未显示为 "xs"大小

c# - 在 ASP.NET 中的回发时维护水平和垂直 ScrollPosition

javascript - 检查元素是否没有属性 jQuery

javascript - 轮播 slider 首先加载,但图像需要一些时间才能加载

c# - 如何在鼠标单击时关闭 Bootstrap 警告警报?

javascript - 一次切换一个按钮 Bootstrap