我想在用户选择jQuery UI日期选择器中的日期并点击表单上的按钮时从日期选择器获取日期。
我需要获取他们选择的日期的日,月和年份。如何从jQuery UI获取日期?
我想在用户选择jQuery UI日期选择器中的日期并点击表单上的按钮时从日期选择器获取日期。
我需要获取他们选择的日期的日,月和年份。如何从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将其转换为JS日期对象。
请参阅http://docs.jquery.com/UI/Datepicker,了解完整的jQuery UI DatePicker参考信息。
试试这个,效果很好,会给出你选择的日期。在提交表单时尝试获取此值:
var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
获取日期的链接:https://api.jqueryui.com/datepicker/#method-getDate
$("#datepicker").datepicker( 'getDate' );
我刚刚进行了一些网络爬虫,以了解JequeryUI日期选择器的行为,这对我来说很必要,因为我不熟悉JS对象,所以:
var month = $(".ui-datepicker-current-day").attr("data-month");
var year = $(".ui-datepicker-current-day").attr("data-year");
var day = $(".ui-state-active").text();
$(document).on('change', '#datepicker', function() {
var month = $(".ui-datepicker-current-day").attr("data-month");
var year = $(".ui-datepicker-current-day").attr("data-year");
var day= $(".ui-state-active").text();
$("#chosenday").text( day + " " + month + " " + year ) ;
});
if( $("a").hasClass("ui-state-active") ){
var month = $(".ui-datepicker-current-day").attr("data-month");
var year = $(".ui-datepicker-current-day").attr("data-year");
var day= $(".ui-state-active").text();
$("#chosenday").text( day + " " + month + " " + year );
}
<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)) ?>" />
我在datapicker的输入中添加了data-value属性,因为如果调用 jQuery(this).val() 或 jQuery(this).attr('value') - 都不起作用。我决定在每个datapicker中循环初始化并从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));
});
而且它正常工作 =)
datepicker
没有起作用,但dtpicker
起作用了。