JQUERY UI datepickerを$("div#someID").datepicker()
のようなDIVにアタッチしてインラインで表示したい場合-選択した日付にアクセスするにはどうすればよいですか? INPUT
にバインドされていない場合、フォームでは送信されません。
フォローアップとして、INPUT要素にバインドする必要がある場合、INPUT要素に対するdatepickerの位置を制御する方法はありますか?日付ピッカーを要素の下ではなく要素の上または側に表示したい場合、どうすればよいですか?
この答えが本当に明白などこかにあるなら、私を許してください。
ユーザーが選択した日付を取得したい場合、これを行うことができます:
$("#datepicker").datepicker({
onSelect: function() {
var dateObject = $(this).datepicker('getDate');
}
});
質問の2番目の部分についてはわかりません。しかし、スタイルシートと相対配置を使用してみましたか?
getDate
メソッドを使用できます。
var d = $('div#someID').datepicker('getDate');
これにより、d
のDateオブジェクトが得られます。
位置決めのオプション ポップアップはありませんが、必要に応じてCSSまたはbeforeShow
イベントを使用して何かを実行できる場合があります。
$('div#someID').datepicker({
onSelect: function(dateText, inst) { alert(dateText); }
});
入力要素のみにバインドする必要があります
この入力のname属性を削除して、送信されないようにすることができます。
このコントロールの値にアクセスするには:
$("div#someID").datepicker( "getDate" )
そして、あなたは http://jqueryui.com/demos/datepicker/ のドキュメントを見るかもしれません
次のように行うことができます-日付ピッカーが要素にバインドされていることを確認するためだけに検証します。
var dt;
if ($("div#someID").is('.hasDatepicker')) {
dt = $("div#someID").datepicker('getDate');
}
選択した要素が1つではない場合、次の方法を使用する必要があります。
$('[type="date"]').datepicker();
$('[type="date"]').change(function() {
var date = $(this).datepicker("getDate");
console.log(date);
});
入力フィールドの横に日付ピッカーを配置するには、次のコードを使用できます。
$('#datepicker').datepicker({
beforeShow: function(input, inst)
{
inst.dpDiv.css({marginLeft: input.offsetWidth + 'px'});
}
});