Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force jQuery UI Datepicker to display below input field

I have a page which contains a form and few fields. My issues are as follow:

  1. I am trying to force jQuery UI datepicker to display below the input field.
  2. When I click in the input field, I want the field to scroll to the top of the page also. I think I have this working.

Here is my jQuery:

JQUERY:

$( document ).ready(function() {
    // Set Datepicker
    $(".datepicker").datepicker();

    $("input").focus(function () {
       $('html, body').animate({ scrollTop: $(this).offset().top - 25 }, 10);
   });

});

Link to a fiddle: https://jsfiddle.net/MauriceT/0qfycgm1/10/

Here is what I want to avoid:

Datepicker displays above the input field

Any suggestions would be greatly appreciated. Thanks!

like image 390
Maurice Twomey Avatar asked Jul 15 '16 14:07

Maurice Twomey


3 Answers

you can achieve your goal by setting the css of the date picker pop.

Use the below code to set the CSS, the use of setTimeout is to avoid the overriding of the CSS.

Here i am finding out the top and left of the date time picker text box and using these value to set the position of the date time picker popup

On the information about beforeShow event check here.

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);
    }
}); 

Here is the fiddle : https://jsfiddle.net/0qfycgm1/14/

like image 101
Deep Avatar answered Sep 20 '22 01:09

Deep


A simple fix is by adjusting the frontend using CSS for the CALENDER Box.

Add the following to your CSS file.

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

I tried it in your Fiddle link, was working perfectly fine.

like image 41
Ankush Raghuvanshi Avatar answered Sep 20 '22 01:09

Ankush Raghuvanshi


add

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

I have added this code to your fiddle and have tested it. hope this will help. have updated your fiddle

like image 35
Jayanti Lal Avatar answered Sep 21 '22 01:09

Jayanti Lal