首页 文章

强制jQuery UI Datepicker显示在输入字段下方

提问于
浏览
4

我有一个页面,其中包含一个表单和几个字段 . 我的问题如下:

  • 我试图强制jQuery UI datepicker显示在输入字段下面 .

  • 当我在输入字段中单击时,我希望该字段也滚动到页面顶部 . 我想我有这个工作 .

这是我的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

任何建议将不胜感激 . 谢谢!

4 回答

  • 1

    你可以通过设置日期选择器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);
        }
    });
    

    这是小提琴:https://jsfiddle.net/0qfycgm1/14/

  • 1

    一个简单的解决方法是使用CSS为CALENDER Box调整前端 .

    将以下内容添加到CSS文件中 .

    .ui-datepicker{
            margin-top: 300px;
        }
    

    我在你的小提琴链接中试过它,工作得非常好 .

  • 5

    ui-datepicker{
              margin-top: 0px;
              }
    

    我已将此代码添加到您的小提琴中并进行了测试 . 希望这会有所帮助 . 已更新你的fiddle

  • 0

    来自jquery-ui-(版本)的以下代码行将您的对象顶部位置设置为零,因此显示错误 . 查看您将获得所需内容的代码行 . 我花了很多天才找到比这更好的解决方案 .

    offset = $ .datepicker._checkOffset(inst,offset,isFixed);

相关问题