我有一个问题,非常类似于year/month only datepicker inline的问题
不同之处在于我使用的是input
版本,而不是div
在div
情况下,ui-datepicker-calendar
位于外部div中,因此可以唯一访问
但是对于input
,输入和ui-datepicker-calendar
之间没有任何关系(或者,我找不到......)
为了清楚起见,我不能使用" global" .ui-datepicker-calendar { display: none;}
,因为我有一个完整的日期选择器(也就是使用日期)
我的代码如下:
$("#monthsYearInput").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "mm/yy",
onClose: function(dateText) {
if (dateText != "") {
var selectedDate = $.datepicker.parseDate("dd/mm/yy", "01/" + dateText);
$(this).datepicker("setDate", selectedDate);
$(this).datepicker("refresh");
}
},
beforeShow: function() {
var dateText = $(this).val();
var isPopulated = dateText.length > 0;
if (isPopulated) {
var selectedDate = $.datepicker.parseDate("dd/mm/yy", "01/" + dateText);
$(this).datepicker("option", "defaultDate", selectedDate);
$(this).datepicker("setDate", selectedDate);
$(this).datepicker("refresh");
}
},
onChangeMonthYear: function(year, month) {
if (changingDate) {
return;
}
changingDate = true;
$(this).datepicker("setDate", new Date(year, month - 1, 1));
$(this).datepicker("refresh");
changingDate = false;
}
});
$("#monthsYearInput").focus(function () {
$(".ui-datepicker-calendar").hide();
};
$("#monthsYearInput").blur(function () {
$(".ui-datepicker-calendar").hide();
};
这一切看起来都很好,但是当年/月改变时,新日期会填入输入(所需),但现在显示日历(不需要)。
有关如何解决此问题的任何想法?...
提前致谢。
JSfiddle:http://jsfiddle.net/OhadRaz/8z9M2/
答案 0 :(得分:0)
我认为您仍然可以使用the solution中的css进行链接但仅定位一个日期选择器
#monthsYearInput .ui-datepicker-calendar { display: none;}
答案 1 :(得分:0)
您可以将代码放在JSFiddle上,以便我们可以看到它在做什么吗?我可能已经在Jquery Datepicket Supress Year做了一些熟悉的事情,但没有JSFiddle演示就无法分辨......
答案 2 :(得分:0)
行,
我提出了某种解决方案:
var superUpdateDatepicker = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function(inst) {
var ret = superUpdateDatepicker.apply(this, arguments);
if (inst.id == "monthsYearInput") {
$(".ui-datepicker-calendar").hide();
}
return ret;
}
在工作的时候,我对它不满意 这太糟糕了,它不干净,我只是不喜欢它。
有更好的想法吗?...