我有一个包含表单和几个字段的页面。我的问题如下:
这是我的jQuery:
JQUERY:
$( document ).ready(function() {
// Set Datepicker
$(".datepicker").datepicker();
$("input").focus(function () {
$('html, body').animate({ scrollTop: $(this).offset().top - 25 }, 10);
});
});
链接到小提琴: https://jsfiddle.net/MauriceT/0qfycgm1/10/
这是我想要避免的:
Datepicker displays above the input field
任何建议都将不胜感激。谢谢!
答案 0 :(得分:8)
您可以通过设置日期选择器pop的css来实现目标。
使用下面的代码设置CSS,使用setTimeout是为了避免重写CSS。
在这里,我找到日期时间选择器文本框的顶部和左侧,并使用这些值设置日期时间选择器弹出窗口的位置
关于有关beforeShow事件检查的信息,请点击此处。
https://api.jqueryui.com/datepicker/#option-beforeShow
$(".datepicker").datepicker({
beforeShow: function (input, inst) {
setTimeout(function () {
inst.dpDiv.css({
top: $(".datepicker").offset().top + 35,
left: $(".datepicker").offset().left
});
}, 0);
}
});
答案 1 :(得分:1)
一个简单的解决方法是使用CSS为CALENDER Box调整前端。
将以下内容添加到CSS文件中。
.ui-datepicker{
margin-top: 300px;
}
我在你的小提琴链接中尝试过,工作得很好。
答案 2 :(得分:1)
答案 3 :(得分:0)
来自jquery-ui-(版本)的以下代码行将您的对象顶部位置设置为零,因此显示错误。查看您将获得所需内容的代码行。我花了很多天才找到比这更好的解决方案。
offset = $ .datepicker._checkOffset(inst,offset,isFixed);