【发布时间】:2025-12-08 18:00:01
【问题描述】:
大家晚上好,我创建了一个 JQuery Ui 日期选择器数月和数年,代码如下:
$.datepicker.setDefaults($.datepicker.regional["pt-BR"]);
$(datePickerId).datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel:true,
maxDate: "+3m",
minDate: "-2y",
onClose: function(dateText, inst) {
$(this).prop('disabled', true);
let month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
let year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
let givenDate = new Date(year, month, 1);
$(this).datepicker('setDate', givenDate);
//Do something with AJAX
}
});
$(datePickerId).datepicker("setDate", "0")
我的问题是,当用户选择日期时,输入是这样的:
这张图片就是一个完美的例子,在这种情况下,用户选择了 8 月份,但是一旦他再次点击日期选择器,日期选择器就会选择默认日期,该日期设置为运行第一次(今天的月/年),当用户选择一个新的月/年时,我怎样才能让代码“记住”在 onClose 方法中选择的代码,然后正确显示?非常感谢您。
编辑以完全描述我真正想要做的事情:用户打开日历,它以实际的月份和年份开始,用户选择 2019 年 7 月,单击确定,向服务器发出 AJAX 请求以选择一些信息给定月份,用户再次单击日期选择器,日历显示,当发生这种情况时,月份和年份的输入(参见图片以供参考)应为 2019 年 7 月/2019 年(用户选择的最后一个月/年份)。
【问题讨论】:
-
您在
onClose中使用givenDate的目的是什么?这就是导致日期更改的原因onClose... -
这能回答你的问题吗? Jquery DatePicker Set default date
-
您可以设置一个变量 onclick 或使用 localstorage,然后使用 if/else 来检查变量在初始加载时是否为空。
-
我需要 givenDate 以便稍后使用用户关闭日期选择器的日期进行 AJAX 请求。
-
您在 datePicker 代码中使用的
dataFormat是什么 - 我没有看到任何内容?
标签: javascript jquery jquery-ui