Bootstrap datetimepicker奇怪地定位在一个不同的div上

时间:2015-06-10 11:51:12

标签: javascript jquery html css bootstrap-datetimepicker

我正在使用带有格式的bootstrap datetimepicker来启用我的代码中的编辑时间,我这样做:

function setTimepicker(object){
    object.datetimepicker({
                format: 'HH:mm'
            });
}

我在document.ready中调用此函数就像这样:

$(document).ready(function(){
   setTimepicker(starttimefield);
   setTimepicker(endtimefield);
});

我使用的html是这样的:

<div class="panel-body">
    <form id="myform">
         <p> <b>Create a New Event:</b></p>                                      
         <br>
         <p>Description for main page: <br>
            <textarea id="summary" name="summary" maxlength="100"></textarea>
         </p>
         <p> Full description: <br>
            <textarea id="description" name="description" maxlength="500"></textarea>
         </p>
         <div class="wrapper">
             <div class="titles">
                 <p> Event date:  
                 </p>
                 <p> Start time:                                         
                 </p>                                        
                 <p> End time:    
                 </p>
                 </div>
                 <div class="values">
                     <input type="text" id="eventdate" readonly/><br>
                     <div id="starttimepicker">
                         <input type="text" id="starttime" onkeydown="return false"/><br>
                     </div>
                     <div id="endttimepicker">
                         <input type="text" id="endtime" onkeydown="return false"/>                                            
                     </div>
                 </div>
            </div>
            <p> Location: <input type="text" id="location"/> </p>

            <p><input type="hidden" id="userid" value="<?php echo Auth::id();?>"/></p>
            <p><input id="saveevent" type="button" value="Save Event" />
                                        </p>
     </form>
</div>

除了标准的css文件(jquery-ui.css,bootstrap-datetimepicker.css)之外,我添加了一个额外的css文件,其中包含:

.wrapper {
    display: inline-block;
    width: auto;
    overflow: hidden;
}
.titles {
    width: 100px;
    float:left;
}
.values {
    overflow: hidden;
    margin-left: 100px;
}

现在针对手头的问题,字段endtime和starttime在点击时应该有一个时间戳(这个工作)但是看看它在这个图像中呈现时间戳的位置:

enter image description here

任何人都可以帮我把那个时间点元素放在它所属的字段旁边(或上面或附近,任何东西)

1 个答案:

答案 0 :(得分:4)

您缺少一个.input-group包装器,其位置值为&#34; relative&#34;。由于datepicker是绝对定位的,因此需要相对定位它的容器,以便正确定位日期选择器。

所以我相信这样的事情会起作用:

.values {
    position: relative;
    overflow: hidden;
    margin-left: 100px;
}

更好的是,让我们在实际持有输入的div上设置相对位置,如下所示:

#starttimepicker {
  position: relative;
}

#endtimepicker {
  position: relative;
}

如果你想要我的意见,虽然这不是很干。如果您可以控制html,可以尝试添加一类&#34; values__datepicker&#34; (或任何类)#starttimepicker和#endtimepicker只设置一个CSS规则:

.values__datepicker {
  position: relative;
}