2016-07-15 39 views
4

私はフォームと少数のフィールドを含むページを持っています。私の問題は、次のとおりです:強制的にjQueryのUI Datepickerが下の入力フィールドを表示する

  1. 入力フィールドの下に表示するjQuery UIのdatepickerを強制しようとしています。
  2. 入力フィールドをクリックすると、フィールドがページの上部にもスクロールされます。私はこれが働いていると思う。ここで

私の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

入力の下にはどういう意味がありますか?入力フィールドを日付ピッカーにオーバーレイしますか? – Deep

+0

だから私は日付のピッカーをフィールドの下に表示する必要があります。現時点では、datepickerをクリックし、フィールドの上にスペースがある場合、フィールドの上にdatepickerが表示されます。私の質問の画像にあるリンクをクリックしてビジュアルを表示します。ありがとう! –

答えて

4

あなたは日付ピッカーのポップのCSSを設定することで目標を達成することができます。

CSSを設定するには、次のコードを使用します。setTimeoutの使用は、CSSの上書きを避けるためです。

ここで私はトップを見つけると、日付時刻ピッカーテキストボックスの左に、ここでbeforeShowイベントチェックに関する情報に日付時刻ピッカーポップアップ

の位置を設定するためにこれらの値を使用しています。 jqueryの-UI-からのコードの行に続きhttps://jsfiddle.net/0qfycgm1/14/

+0

ありがとう、ディープ!あなたは天才です! :) –

+0

@MauriceTwomeyあなたは大歓迎です:) – Deep

1

簡単な修正は、CALENDER BoxのCSSを使用してフロントエンドを調整することです。

あなたのCSSファイルに以下を追加してください。

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

私はあなたのフィドルリンクで試してみましたが、完全に正常に動作していました。

+0

あなたの応答、Ankushありがとう!しかし、私がページを下にスクロールしてdatepickerを選択すると、datepickerがフィールドの下に300pxで表示されるため、これは堅牢な解決策ではありません。もっとダイナミックなものが必要です。 –

+0

私が理解しているところでは、カレンダーボックスは日付ピッカー入力フィールドの上に表示されますが、その下に表示します。そうですか、それとも他に何かしたいですか? –

+0

あなたが言及したスクロールの問題が発生しました。そして、それはトップマージンの場合にも続く:0pxまた、Jayanti Lalの解決策もうまくいきません。 –

1

は、私はあなたのフィドルにこのコードを追加して、それをテストしている

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

を追加します。これが助けてくれることを願う fiddle

0

は、(バージョン)がゼロので、それが表示されwrong.Commentなるためにあなたのオブジェクトのトップの位置を設定します。ここでは

$(".datepicker").datepicker({ 
    beforeShow: function (input, inst) { 
     setTimeout(function() { 
      inst.dpDiv.css({ 
       top: $(".datepicker").offset().top + 35, 
       left: $(".datepicker").offset().left 
      }); 
     }, 0); 
    } 
}); 

https://api.jqueryui.com/datepicker/#option-beforeShowはフィドルですあなたが望むものを得ることができます。私は多くの日を費やしてこれ以上の解決策を見つけませんでした。

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

関連する問題