有一個需求是按月查詢和按日查詢,選擇按月查詢,日期控件返回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爲按日和按月切換控件