Eson简单日历控件

用于web的简单日历控件,支持单选,多选,自定义控件数量,自定义星期显示,自定义工作日的第一天,自定义日期格式,表单自动绑定。

http://www.thinkasp.cn/

目录:默认 主题设置 销毁和重建 农历插件 代码

参数

	Eson('calendar', {
		date : new Date(),			//初始日期,默认为当前日期
		set_up_date : null,			//包含控件展示月份的日期
		first_week_day : 0,			//一周的第一天,默认为星期日。可选。
		weeks : "日一二三四五六",	//星期的显示文本,例如 : ['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat']。可选。
		multi_select : false,		//是否允许多选
		//日期选择事件,this引用为选择的日期对象,y, M, d分别代表年、月、日。
		//如果允许显示时间,则h,m,s分别代表小时,分钟和秒
		//如果允许多选,则y为包含已选择日期的数组
		//如果不定义,并且绑定的文本框,则直接将值赋值给文本框(多选时多个日期逗号连接)。
		onselect : function(y, M, d, h, m, s){},
		onerror : function(msg){},	//控件出错事件
		format : "",				//日期格式,未定义onselect时有效。可选yyyy/MM/M/dd/d/H/HH/h/hh/mm/m/ss/s组合。
		min : null,					//设定起始日期
		max : null,					//设定结束日期
		width : null,				//设置控件自动控制的宽度,默认不设置,根据css展示。
		cell_height : null,			//设置控件日期单元格的高度,宽度由控件自行计算。
		show_time : false,			//是否显示时间
		date_up : function(y, m, d){},		//填充单元格事件,可通过返回值控制单元格内容
		before_render : function(date){},	//开始渲染单元格事件
		after_render : function(date){},	//单元格渲染结束事件
		max_count : 0,				//显示多控件时,最多显示的控件数,
		control_union : false		//是否允许控制器联动(控制器值控件中的年份选择器),
		after_select_year : function(y, type){},	//控制器选择年份的事件,y为选择的年份,type为操作类型
		after_select_month : function(m, type){}	//控制器选择月份的事件,m为选择的月份,type为操作类型
	});

关于操作类型

after_select_year和after_select_month中的操作类型可取值为:-1,0,1。
-1代表点击了左控制器(减一年或月),0代表点击了面板来选择,1代表点击了右控制器(加一年或月)。

主题(以下两种方式只能使用一种)

直接引入主题

通过link标签引入主题文件或style标签写入主题的css代码。缺点是多主题不能共存。

主题选择器

通过Eson,自动引入指定主题,必须定义主题目录路径。多主题可以共存。

Eson.skin_path = 'styles/'; //不能漏掉后面的“/”
//方式1、全局主题引入
Eson.skin = 'eson'; //全局主题。默认主题为eson,必须显示设置(如果使用默认主题的话)。
//方式2、配置项skin引入
Eson('input1', {skin : 'blue'}); //Eson会自动引入blue主题,并应用到当前控件

A、单选

1、绑定到DIV容器

	Eson('calendar', {
		first_week_day : 1,
		weeks : "一二三四五六日",
		onselect : function(y,m,d){
			get("result").innerHTML = y + "-" + m + "-" + d;
		}
	});

2、绑定文本框(文本框获得焦点时弹出)

Eson('inputtext', {
	onselect : function(y,m,d){
		set_val("inputtext", y + "-" + m + "-" + d);
	}
});
//或
Eson('inputtext');

3、绑定文本框(显示时间)

Eson('inputtext_time', {
	show_time : true
});

4、绑定任一元素

选择日期
Eson('selectdate', {
	date : "2012-3-24",
	onselect : function(y,m,d){
		set_val("inputtext2", y + "-" + m + "-" + d);
	}
});

5、限定起止时间

Eson('inputtext3', {
	date : "2012-3-24",
	min : "2012-3-3",
	max : "2012-4-3 23:59:59"
});

B、多选

1、同月单控件

Eson('inputtext_m', {
	multi_select : true
});

2、不同月多控件

Eson('inputtext_n', {
	multi_select : true
});

3、不同月多控件,控制器联动

Eson('inputtext_k', {
	multi_select : true,
	control_union : true
});

4、不同月强制单控件

Eson('inputtext_j', {
	multi_select : true,
	multi : false
});

5、不同月多控件,限制最多控件个数

Eson('inputtext_i', {
	multi_select : true,
	max_count : 3
});