Ich habe eine Schaltfläche auf einer Seite, die einen Modal mit Datumsauswahl aufruft.
Wenn sich diese Schaltfläche oben befindet (ich muss keine Seite scrollen, um zu klicken), wird das modale Fenster geöffnet und das Datumsauswahlfeld wird korrekt angezeigt.
Wenn diese Schaltfläche jedoch auf der Seite niedriger ist (damit ich zum Blättern die Seite scrollen muss), wird Modal geöffnet und Datumsanzeige wird falsch angezeigt (NICHT SICHER, wenn beim Scrollen eine Beziehung besteht)
Hier ist die jsfiddle
Hier ist das Problem bei der Bildanzeige, der Datumsauswahl-Assistent sollte oben als Tooltip angezeigt werden, geht aber nach unten:
Hier ist der Code:
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#callModal">Contact</button>
<div class="modal fade" id="callModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<form role="form">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" placeholder="Enter name">
</div>
<div class="form-group">
<label for="contact">Contact</label>
<input type="text" class="form-control" id="contact" placeholder="Your mobile number">
</div>
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<label for="cal">Date & Time</label>
<div class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" id="cal"/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker1').datetimepicker();
});
</script>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-danger">Contact </button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
EDIT Der Tool-Tipp für Datentimepicker wird um den Betrag verschoben, um den ich die Seite scrolle, bevor Sie auf die Schaltfläche "Kontakt" klicken, um das Modal mit dem Datentimepicker anzuzeigen.
Ich bin gerade auf dieses Thema gestoßen. Ich konnte es lösen, indem ich dem div ein Containerattribut hinzufügte.
$('#myDatePicker').datepicker({
container:'#myModalId'
});
oder wenn Sie die "Lazy Load" -Methode so verwenden wie ich war:
<input id='myDatePicker' data-provide='datepicker' data-date-container='#myModalId'>
Referenz: http://bootstrap-datepicker.readthedocs.org/de/latest/options.html
Hoffe es hilft jemand anderem!
Datetimepicker wird an einer falschen Stelle angezeigt, wenn der Container der Eingabe nicht relativ positioniert ist.
Die Lösung ist:
<div style="position:relative">
<div class='input-group date' id='datetimepicker1'>
</div>
Ich hatte das gleiche Problem bei der Verwendung von Bootstrap 4.1.1. Das Datepicker-Popover wurde oben auf dem Eingabeelement angezeigt.
Ich habe es mit diesem CSS behoben:
/* fix bootstrap-datepicker positional bug */
.datepicker {
transform: translate(0, 3.1em);
}
In meinem Fall war die Position des Datepickers 60px höher als er hätte sein sollen, da einer seiner div
Eltern hatte:
margin-top: 60px;
anstatt
padding-top: 60px;
Bei mir funktioniert die Lösung
var datepicker = sandbox.dom('body').find('.bootstrap-datetimepicker-widget:last'),
position = datepicker.offset();
// Move datepicker to the exact same place it was but attached to the body
datepicker.appendTo('body');
datepicker.css({
position: 'absolute',
top: position.top,
bottom: 'auto',
left: position.left,
right: 'auto'
});
Für mich stellte sich dies und die damit verbundenen Probleme heraus, weil ich das Code-Inspector-Fenster geöffnet hatte. Regelmäßige Benutzer sollten dies nicht aktiviert haben. Wenn dies der Fall ist, ist dies kein Problem.
Diese Lösung funktionierte perfekt für mich, um den Datepicker auf Bootstrap-Modal zu rendern.
http://jsfiddle.net/cmpgtuwy/654/
HTML
<br/>
<div class="wrapper">
Some content goes here<br />
Some more content.
<div class="row">
<div class="col-xs-4">
<!-- padding for jsfiddle -->
<div class="input-group date" id="dtp">
<input type="text" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon-calendar glyphicon"></span>
</span>
</div>
</div>
</div>
</div>
Javascript
$('#dtp').datetimepicker({
format: 'MMM D, YYYY',
widgetParent: 'body'});
$('#dtp').on('dp.show', function() {
var datepicker = $('body').find('.bootstrap-datetimepicker-widget:last');
if (datepicker.hasClass('bottom')) {
var top = $(this).offset().top + $(this).outerHeight();
var left = $(this).offset().left;
datepicker.css({
'top': top + 'px',
'bottom': 'auto',
'left': left + 'px'
});
}
else if (datepicker.hasClass('top')) {
var top = $(this).offset().top - datepicker.outerHeight();
var left = $(this).offset().left;
datepicker.css({
'top': top + 'px',
'bottom': 'auto',
'left': left + 'px'
});
}
});
CSS
.wrapper {
height: 100px;
overflow: auto;}
body {
position: relative;
}