这个日期控件有这个问题,只选择“年”(年的下拉列表),日期不变化
非得选择“年” 再选择“月”日期框上才改变比如说,默认的月是5月,那选择哪一年,就应该变为哪一年的5月(不需要再选月了啊)
(因为,数据是不定在哪一天,所以没有数据的天就得是灰色的)不知道我表达的 大家能不能听懂??谢谢大家了,给我看看吧...
下面是我的js文件 createDatePicker函数不太懂~~
var finished=true;
var currentYear=0;
var months={'date':['0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000', ]};
var request;try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}function nationalDays(date) {
var y=date.getYear();
var m=date.getMonth();
var d=date.getDate();
var currentMonth=months.date[m];
var ch=currentMonth.charAt(d-1);
if(ch=='0'){
return [false,''];
}
return [true, ''];
}function updateInvalidDate() {
if(request.readyState==4){
months=eval(request.responseText);
finished=true;
//alert(request.responseText);
}
}function queryInvalidDate(year,func){
var current=window.location.href;
var pos=current.lastIndexOf("/");
var url=current.substring(0,pos)+"/GetInvalidDate.action?year=" + year;
finished=false;
request.open("GET", url, true);
request.onreadystatechange = func;
request.send(null);
//开始查询,
//alert(url);
}
function dp_onChangeMonthYear(y,m){
if(currentYear!=y){
/* alert("y="+y+" m="+m); */
queryInvalidDate(y,updateInvalidDate);
currentYear=y;
/*
alert('y='+y+' current='+currentYear);
*/
}
}function createDatePicker(date1,date2){
var mindate=new Date(date1.substring(0,4), 1*date1.substring(5,7)-1, date1.substring(8,10));
var maxdate=new Date(date2.substring(0,4), 1*date2.substring(5,7)-1, date2.substring(8,10));
$('#datebox').datepicker( $.extend( {},
$.datepicker.regional["zh-CN"], {
yearRange: '1900:2100',
minDate: mindate,
maxDate: maxdate,
beforeShowDay: nationalDays,
onChangeMonthYear: dp_onChangeMonthYear,
showOn: "both",
closeAtTop: false,
mandatory: true,
changeFirstDay: false,
onSelect: function(dateText) {$('#datepicker')[0].submit();},
buttonImage: "images/calendar.gif",
buttonText: "选择日期",
buttonImageOnly: true
})
);
}
非得选择“年” 再选择“月”日期框上才改变比如说,默认的月是5月,那选择哪一年,就应该变为哪一年的5月(不需要再选月了啊)
(因为,数据是不定在哪一天,所以没有数据的天就得是灰色的)不知道我表达的 大家能不能听懂??谢谢大家了,给我看看吧...
下面是我的js文件 createDatePicker函数不太懂~~
var finished=true;
var currentYear=0;
var months={'date':['0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000',
'0000000000000000000000000000000', ]};
var request;try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}function nationalDays(date) {
var y=date.getYear();
var m=date.getMonth();
var d=date.getDate();
var currentMonth=months.date[m];
var ch=currentMonth.charAt(d-1);
if(ch=='0'){
return [false,''];
}
return [true, ''];
}function updateInvalidDate() {
if(request.readyState==4){
months=eval(request.responseText);
finished=true;
//alert(request.responseText);
}
}function queryInvalidDate(year,func){
var current=window.location.href;
var pos=current.lastIndexOf("/");
var url=current.substring(0,pos)+"/GetInvalidDate.action?year=" + year;
finished=false;
request.open("GET", url, true);
request.onreadystatechange = func;
request.send(null);
//开始查询,
//alert(url);
}
function dp_onChangeMonthYear(y,m){
if(currentYear!=y){
/* alert("y="+y+" m="+m); */
queryInvalidDate(y,updateInvalidDate);
currentYear=y;
/*
alert('y='+y+' current='+currentYear);
*/
}
}function createDatePicker(date1,date2){
var mindate=new Date(date1.substring(0,4), 1*date1.substring(5,7)-1, date1.substring(8,10));
var maxdate=new Date(date2.substring(0,4), 1*date2.substring(5,7)-1, date2.substring(8,10));
$('#datebox').datepicker( $.extend( {},
$.datepicker.regional["zh-CN"], {
yearRange: '1900:2100',
minDate: mindate,
maxDate: maxdate,
beforeShowDay: nationalDays,
onChangeMonthYear: dp_onChangeMonthYear,
showOn: "both",
closeAtTop: false,
mandatory: true,
changeFirstDay: false,
onSelect: function(dateText) {$('#datepicker')[0].submit();},
buttonImage: "images/calendar.gif",
buttonText: "选择日期",
buttonImageOnly: true
})
);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货