【问题标题】:Bootstrap datetimepicker strange positioning on a different div altogetherBootstrap datetimepicker 奇怪的定位在不同的 div 上
【发布时间】:2015-06-10 11:51:11
【问题描述】:

我正在使用带有格式的引导程序 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),我添加了 1 个额外的 css 文件,其中包含:

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

现在对于手头的问题,字段 endtime 和 starttime 在单击时应该有一个时间选择器(这可行),但请查看它在此图像中呈现时间选择器的位置:

谁能帮我在它所属的字段旁边(或上面或附近)获取那个时间选择器元素

【问题讨论】:

  • 使用合金 UI 组件,它也使用 Jquery 作为基本 javascript 框架
  • 抱歉,我对所有这些东西都很陌生(后端开发人员),您能解释一下在答案中要获得什么以及如何使用它吗?
  • Jeremy C 只需探索 Alloy UI 您将获得所有信息。

标签: javascript jquery html css bootstrap-datetimepicker


【解决方案1】:

您缺少一个位置值为“相对”的.input-group 包装器。由于日期选择器是绝对定位的,因此它的容器需要相对定位才能正确定位日期选择器。

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

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

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

#starttimepicker {
  position: relative;
}

#endtimepicker {
  position: relative;
}

如果你想要我的意见,虽然这不是很干。如果您可以控制 html,则可以尝试将“values__datepicker”类(或任何类)添加到 #starttimepicker 和 #endtimepicker 并设置一个 CSS 规则,如下所示:

.values__datepicker {
  position: relative;
}

【讨论】:

  • 这使它稍微好一点(现在在正确的位置上)但现在它没有呈现选择器元素看这里oi61.tinypic.com/20giq36.jpg
  • 是的,您已将overflow 设置为“隐藏”。我不确定你为什么这样做,但它会隐藏任何绝对定位的东西。如果你不需要它来做任何特定的事情,你应该删除它。如果您需要它来做某事,请告诉我那是什么,我们可以尝试更好的解决方案。
  • 老实说我有它,因为我使用了一些复制粘贴代码,当我试图将 2 个 div 彼此相邻排列时,我从某个地方得到了一些复制粘贴代码,而我对 css 或一般样式一无所知: D,但谢谢,成功了
  • @leubauza 我刚刚注意到 starttime 的时间选择器实际上是在正确的位置呈现,但 endtime 的时间选择器被呈现在日期字段上方而不是 endtime 你知道可能是什么问题吗在这里?
  • 好的,所以我们所做的是在 .values 容器上设置 position: relative,因此所有内容都将与此相关。我现在看到的并不是很理想。因此,请参阅我的帖子以获取更新的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2014-06-18
  • 2015-07-19
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多