jQuery datepicker出现在twitter bootstrap模式后面

时间:2014-07-08 07:58:28

标签: jquery jquery-ui twitter-bootstrap datepicker bootstrap-modal

我正在使用Bootstrap v2.3.2和jQuery Datepicker v1.10.0,

在模式上,我正在尝试使用日期选择器,它出现在Firefox和IE上的模态背后,在Chrome上似乎工作正常。

这就是它在IE和Firefox上的样子

enter image description here

我的模态HTML

<div id="editGoals" class="modal hide fade" data-keyboard="false" data-backdrop="static">
    <div class="modal-header">
        <a type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</a>

        <h3 style="font-size: 18px;" id="myModalLabel"><img src="assets/img/logo_icon.png">Goal Tracker</h3>
    </div>
    <div class="modal-body">
        <div id="message2"></div>
        <form action="dashboard-goals-ajax.php" method="post" name="goaldataform" id="goaldataform"
              class="form-horizontal goaldataform">
            <div class="control-group">
                <label class="control-label goal_label_text"><?php _e('Goal Target'); ?>
                </label>

                <div class="controls">
                    <div class="input-prepend input-append">
                    <span class="add-on">$</span><input type="text" class="input-medium" name="goal_target" id="goal_target" value="">
                        </div>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label goal_label_text"><?php _e('How much have you saved towards your goal?'); ?>
                </label>

                <div class="controls">
                    <div class="input-prepend input-append">
                    <span class="add-on">$</span><input type="text" class="input-medium" name="goal_progress" id="goal_progress" value="">
                    </div>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label goal_label_text"><?php _e('Goal deadline'); ?>
                </label>

                <div class="controls">
                    <div class="input-prepend input-append">
                        <span class="add-on"></span><input class="input-medium" type="text" id="goalDeadline" name="goalDeadline">
                    </div>
                </div>
            </div>
            <input type="hidden" name="goal_type" id="goal_type" value=""/>
            <input type="hidden" name="goal_target_submitted">
        </form>
    </div>
    <div class="modal-footer">
        <button data-complete-text="Close" class="dt-btn btn-yellow dt-btn-1 pull-right"
                id="goaldatasubmit" name="goaldatasubmit"><?php _e('Submit'); ?></button>


        <div class="gap-10"></div>

    </div>
</div>

JS for datepicker

<script>
    $(function () {
        $("#goalDeadline").datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: +1
        });
    });
</script>

我已经完成了几乎所有可以在网络和stackoverflow上找到的解决方案,但似乎没有任何工作。我真的很感激这里的任何帮助。

3 个答案:

答案 0 :(得分:20)

This answer 涵盖了这个问题。

这是一个z-index问题。通常通过CSS应用更高的z-index会起作用,但是每次绘制Datepicker UI时jQuery都会重置CSS。

每次使用beforeShow属性绘制时,解决方案都会重新应用CSS。

答案 1 :(得分:9)

我遇到了同样的问题,修复了它;

PHP Authentication Library

参考github

答案 2 :(得分:0)

@Matt回答时,将z-index的{​​{1}}设置为高于modal的{​​{1}},并假设z-index的{​​{1}}如下:

modal

然后对z-index类应用z-index而不是模式:

modal.fade {
    z-index: 10000000 !important;
}