【问题标题】:Bootstrap DatePicker inside Modal not workingModal中的Bootstrap DatePicker不起作用
【发布时间】:2015-12-23 02:13:33
【问题描述】:

我在模态框内有这个日期选择器,但无法正常工作。我已经尝试了一些我在论坛中看到的代码,但它们都不起作用。这可能是一个javascript问题吗?我不确定是什么导致不显示日期选择器,任何可以帮助我的人请感谢

<script>
$(document).ready(function() {
    $('#datePicker')
        .datepicker({
            format: 'mm/dd/yyyy'
        })
        .on('changeDate', function(e) {
            // Revalidate the date field
            $('#eventForm').formValidation('revalidateField', 'date');
        });

    $('#eventForm').formValidation({
        framework: 'bootstrap',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            name: {
                validators: {
                    notEmpty: {
                        message: 'The name is required'
                    }
                }
            },
            date: {
                validators: {
                    notEmpty: {
                        message: 'The date is required'
                    },
                    date: {
                        format: 'MM/DD/YYYY',
                        message: 'The date is not a valid'
                    }
                }
            }
        }
    });
});
</script>
<div class="form-group">
        <label class="col-xs-3 control-label">Date</label>
        <div class="col-xs-5 date">
            <div class="input-group input-append date" id="datePicker">
                <input type="text" class="awe-calendar" name="date" />
                <span class="input-group-addon add-on"><span class="glyphicon glyphicon-calendar"></span></span>
            </div>
        </div>
    </div>

【问题讨论】:

  • 在body标签末尾加载jquerybootstrap.min.js
  • 我已经在body标签的末尾加载了。
  • 日期选择器正在工作,但它显示在输入字段上方
  • 什么意思?日期选择器未显示。
  • 我无法点击日历标志。

标签: javascript css datepicker modal-dialog


【解决方案1】:

在类 datepicker 中添加高于 1051 的 z-index

在页面或css中添加类似的东西

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

【讨论】:

  • 尝试调试它,这样你就知道哪里出错了
  • 我试过了,我可以把文件发给你吗?你能帮助我吗。 -.-
【解决方案2】:

我遇到了同样的问题,最好的方法是请检查我用来解决此问题的以下代码。这将在您单击正文中的任何位置时起作用

请在上面加上

div 模型主体

    <script>
      $(document).on("click", ".modal-body", function () {
       $("#datepicker").datepicker({
         dateFormat: 'yy-mm-dd'                                    
         });
          });  
    </script> 
 <div class="modal-body">

【讨论】:

    【解决方案3】:

    我制作了一个示例应用程序来展示它。它的工作正常

    <!DOCTYPE html>
    <html>
    <head>
        <title>The Date</title>
        <meta charset="utf-8" /> 
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
        <link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> 
        <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
        <script>
            $(function () {
                $('#datetimepicker1').datepicker({
                });
            });
        </script>
    </head>
    <body>
        <div class="container">
            <div class="">&nbsp;</div>
            <!-- Button trigger modal -->
            <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
                Launch demo modal
            </button>
        </div>
        <!-- Modal -->
        <div class="modal fade" id="myModal" 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">Pick your Date</h4>
                    </div>
                    <div class="modal-body">
                        <input id="datetimepicker1" type="text" class="form-control" />
                    </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> 
    </body>
    </html>
    

    【讨论】:

      【解决方案4】:

      我有类似的问题,几个小时后,我在 css 中发现了这个简单但有用的answer

      如果你想在调用modal后使用jquery,你可以这样做:

      $('#infoModal').modal('show');
      $('#infoModal').on('shown.bs.modal', function(e) {
          $('.bootstrap-datetimepicker-widget').css('z-index', 1500);
      });
      

      感谢Alfredo

      【讨论】:

        【解决方案5】:

        把输入标签的id改成datepicker,就可以了。

        【讨论】:

          【解决方案6】:

          添加这个:

          $('#datePicker')
              .datepicker({
                  format: 'mm/dd/yyyy',
                   beforeShow: function () {
                        setTimeout(function () {
                            $('.ui-datepicker').css('z-index', 99999);
                        }, 0);
                    }
              })
              .on('changeDate', function(e) {
                  // Revalidate the date field
                  $('#eventForm').formValidation('revalidateField', 'date');
              });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-04-02
            • 1970-01-01
            • 2015-11-22
            相关资源
            最近更新 更多