Bootstrap datetimepicker 奇怪的定位完全不同 div
Bootstrap datetimepicker strange positioning on a different div altogether
我正在使用 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)我添加了 1 个额外的 css 文件其中包含:
.wrapper {
display: inline-block;
width: auto;
overflow: hidden;
}
.titles {
width: 100px;
float:left;
}
.values {
overflow: hidden;
margin-left: 100px;
}
现在针对手头的问题,点击字段 endtime 和 starttime 时应该有一个时间选择器(这是有效的)但是看看它在这张图片中呈现时间选择器的位置:
任何人都可以帮助我在它所属的字段旁边(或上方或附近)获取时间选择器元素
您缺少位置值为 "relative" 的 .input-group
包装器。由于日期选择器是绝对定位的,因此它的容器需要相对定位才能正确定位日期选择器。
所以我相信这样的事情会奏效:
.values {
position: relative;
overflow: hidden;
margin-left: 100px;
}
更好的是,让我们在实际保存输入的 div 上设置相对位置,如下所示:
#starttimepicker {
position: relative;
}
#endtimepicker {
position: relative;
}
如果你想要我的意见,虽然这不是很干。如果您可以控制 html,您可以尝试将 class 或 "values__datepicker"(或任何 class)添加到 #starttimepicker 和 #endtimepicker 并仅设置一个 CSS 规则如下:
.values__datepicker {
position: relative;
}
我正在使用 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)我添加了 1 个额外的 css 文件其中包含:
.wrapper {
display: inline-block;
width: auto;
overflow: hidden;
}
.titles {
width: 100px;
float:left;
}
.values {
overflow: hidden;
margin-left: 100px;
}
现在针对手头的问题,点击字段 endtime 和 starttime 时应该有一个时间选择器(这是有效的)但是看看它在这张图片中呈现时间选择器的位置:
任何人都可以帮助我在它所属的字段旁边(或上方或附近)获取时间选择器元素
您缺少位置值为 "relative" 的 .input-group
包装器。由于日期选择器是绝对定位的,因此它的容器需要相对定位才能正确定位日期选择器。
所以我相信这样的事情会奏效:
.values {
position: relative;
overflow: hidden;
margin-left: 100px;
}
更好的是,让我们在实际保存输入的 div 上设置相对位置,如下所示:
#starttimepicker {
position: relative;
}
#endtimepicker {
position: relative;
}
如果你想要我的意见,虽然这不是很干。如果您可以控制 html,您可以尝试将 class 或 "values__datepicker"(或任何 class)添加到 #starttimepicker 和 #endtimepicker 并仅设置一个 CSS 规则如下:
.values__datepicker {
position: relative;
}