有一个需求是按月查询和按日查询,选择按月查询,日期控件返回yyyy-MM,切换至按日查询后,日期控件返回yyyy-MM-dd。目前控件采用jquery-easyui,所以直接采用datebox,调试了很久,终于搞定了。jquery-easyui采用1.4版本,jquery为1.11版本,代码如下:
$("#item").combobox({
onSelect : function(t){
$("#key").datebox("setValue", "");
if (t.value%2==1){
//按日
$("#key").datebox({
formatter: function(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
},
parser : function(s){
if (!s) return new Date();
var ss = s.split('-');
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
});
}else{
//按月
$("#key").datebox({
formatter: function(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
return y+'-'+(m<10?('0'+m):m);
},
parser : function(s){
if (!s) return new Date();
var ss = s.split('-');
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = 1;
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
});
}
}
});
item为按日和按月切换控件