ユーザーがjQueryUI datepickerで日付を選択し、フォームのボタンをクリックするたびに、datepickerから日付を取得したいと思います。
彼らが選んだ日付の日、月、年を取得する必要があります。jQuery UIから日付を取得するにはどうすればよいですか?
回答:
使用する
var jsDate = $('#your_datepicker_id').datepicker('getDate');
if (jsDate !== null) { // if any date selected in datepicker
jsDate instanceof Date; // -> true
jsDate.getDate();
jsDate.getMonth();
jsDate.getFullYear();
}
getDate関数を使用して日付を取得できます。
$("#datepicker").datepicker( 'getDate' );
値はJavaScriptのDateオブジェクトとして返されます。
ユーザーが日付を選択するときにこの値を使用する場合は、onSelectイベントを使用できます。
$("#datepicker").datepicker({
onSelect: function(dateText, inst) {
var dateAsString = dateText; //the first parameter of this function
var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method
}
});
この場合、最初のパラメータは、選択した日付を文字列として指定したものです。parseDateを使用して、JSDateオブジェクトに変換します。
参照http://docs.jquery.com/UI/DatepickerをフルjQueryのUI日付ピッカーの参考のために。
これを試してみてください。魅力のように機能し、選択した日付を表示します。onsubmitフォームはこの値を取得しようとします:-
var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
getdateへのリンク:https://api.jqueryui.com/datepicker/#method-getDate
$("#datepicker").datepicker( 'getDate' );
時々それで多くのトラブル。データピッカーの属性値ではデータは2014年6月28日ですが、日付ピッカーは表示されているか、今日か、何もありません。私はそのようにそれを決めました:
<input type="text" class="form-control datepicker" data-value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" />
jQuery(this).val()またはjQuery(this).attr( 'value')を呼び出すと何も機能しないため、datapicker属性data-valueの入力に追加しました。各データピッカーをサイクルで初期化し、属性data-valueからその値を取得することにしました。
$("form .datepicker").each(function() {
var time = jQuery(this).data('value');
time = time.split('-');
$(this).datepicker('setDate', new Date(time[2], time[1], time[0], 0, 0, 0));
});
そしてそれはうまくいきます=)