【发布时间】:2015-01-08 08:26:02
【问题描述】:
我有一个演示
var chosen=[]
var dates = $("#datepicker1, #datepicker2, #datepicker3, #datepicker4, #datepicker5, #datepicker6, #datepicker7").datepicker({
minDate: "0",
maxDate: "+2Y",
defaultDate: "+1w",
dateFormat: 'mm/dd/yy',
numberOfMonths: 1,
beforeShowDay: function(date){
var mmddyy=$.datepicker.formatDate( 'mm/dd/yy', date ),
sameAs=$.inArray(mmddyy,chosen)
console.log(mmddyy)
if (sameAs>=0)
return [false, "nope","Same as "+(1+sameAs)]
else
return [true]
},
onSelect: function(date) {
chosen=dates.map(function(){
return this.value
}).get()
console.log(chosen)
/*
for(var i = 0; i < dates.length; ++i) {
if(dates[i].id < this.id)
$(dates[i]).datepicker('option', 'maxDate', date);
else if(dates[i].id > this.id)
$(dates[i]).datepicker('option', 'minDate', date);
}
*/
}
});
使用 jquery timepicker 并符合我的要求,但问题是这个演示是基于 ID 的。当我转换成一个类并附加 btn 以便在单击按钮时生成文本框:
var chosen=[]
var dates = $(".txt_cls").datepicker({
minDate: "0",
maxDate: "+2Y",
defaultDate: "+1w",
dateFormat: 'mm/dd/yy',
numberOfMonths: 1,
beforeShowDay: function(date){
var mmddyy=$.datepicker.formatDate( 'mm/dd/yy', date ),
sameAs=$.inArray(mmddyy,chosen)
console.log(mmddyy)
if (sameAs>=0)
return [false, "nope","Same as "+(1+sameAs)]
else
return [true]
},
onSelect: function(date) {
chosen=dates.map(function(){
return this.value
}).get()
console.log(chosen)
/*
for(var i = 0; i < dates.length; ++i) {
if(dates[i].id < this.id)
$(dates[i]).datepicker('option', 'maxDate', date);
else if(dates[i].id > this.id)
$(dates[i]).datepicker('option', 'minDate', date);
}
*/
}
});
它不工作。如果有其他解决方案,请告诉我..
【问题讨论】:
-
您的代码应该可以工作...jsfiddle.net/59c0f3gp/1
标签: jquery jquery-ui datepicker