我想使用multidatespicker显示13个月。我用下面的代码得到了这个:
$(document).ready(function(){
$('#my_calendar').multiDatesPicker({
numberOfMonths: [4, 4],
dateFormat: 'dd-mm-yy',
defaultDate: '01-01-2015',
monthNames: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNamesMin: ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'],
onSelect: function(value, date) {
$("#my_calendar > div > div.ui-datepicker-group").slice(-3).remove();
//$('#my_calendar').multiDatesPicker("refresh");
}
});
$("#my_calendar > div > div.ui-datepicker-group").slice(-3).remove();
});
当multidatespicker加载时,正确显示13个月。但是,当事件onselect触发时,刷新multidatespicker并显示16个月。我试图将“.slice(-3).remove()”也放入onSelect主体,但它没有用。
如何避免刷新?
答案 0 :(得分:0)
问题解决了。
我已经修改了" jquery-ui.js"这样的图书馆: 1.添加一个名为numberOfHiddenMonths的新属性:
A19_c
更新" _updateDatepicker"函数添加这些行:
/* Determine the number of hidden months to show. */
_getNumberOfHiddenMonths: function (inst) {
var numHiddenMonths = this._get(inst, "numberOfHiddenMonths");
return (numHiddenMonths == null ? 0 : numHiddenMonths);
}
现在,我可以使用下一个代码隐藏我想要的月数,在我的情况下,3个月:
_updateDatepicker: function(inst) {
this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
datepicker_instActive = inst; // for delegate hover events
inst.dpDiv.empty().append(this._generateHTML(inst));
this._attachHandlers(inst);
/* This is the code necesary to hide the months */
var numOfHiddenMonths=this._getNumberOfHiddenMonths(inst);
if (numOfHiddenMonths>0) $("#" + inst.id + " > div > div.ui-datepicker-group").slice(-1*numOfHiddenMonths).remove();
/*------------- End -------------------------------------*/