1. 定义DateBox
在Easy UI 中定义DateBox有两种方式,一种是在HTML标签中直接进行Class的命名,另一种是在JavaScript代码中进行DataBox的启用
1). <input type="text" name="starttime" id="starttime" class="easyui-datebox"/>
2). $('startime').datebox()
2. 取值
首先让我们来看看DateBox生成的动态生成的HTML代码。
<input type="text" id="txtDate" class="easyui-datebox"/>
生成:
其实,在我们将文本框变成了DateBox之后,EasyUI为我们生成了上面的代码。真正的值被保存在隐藏域中。所以用$("txtDate").val()是取不到我们想要的值的。故,取值的话用的是EasyUI中的方法。
1).$("#txtDate").datebox("getValue");
2).在DateBox的OnSelect事件中,将值赋给txtDate,然后再取
设置onSelect事件$("#txtDate").datebox({
required: true,
onSelect: function (date) {
$("#txtDate").val(date);
}
});
3.赋值
$("#txtDate").datebox("setValue", "2012-01-01");
4.日期格式验证
--需要注意的是,DateBox已经集成了验证的功能,不用再使用ValiDateBox了。
首先先扩展其验证的方法:
扩展验证日期格式
$.extend($.fn.datebox.defaults.rules, {
date: {
validator: function (value) {
//格式yyyy-MM-dd或yyyy-M-d
return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i.test(value);
},
message: '请输入正确的日期格式'
}
})
验证调用:
调用日期验证
$(function () {
$("#txtDate").datebox({
required: true,//必须
validType: 'date'
});
});
5. 日期格式化
在DateBox中,和日期格式化有关的特性有formatter和parser
- formatter:格式化日期的函数,此函数有一个 'date' 参数,其实Date类型的,并返回一个字符串值。也就是说我们选择日期后显示在文本框中的日期格式可以用formatter重写
- parser:解析日期字符串的函数,此函数有一个 'date' 字符串参数,并返回一个日期值。
格式化日期格式
$("#txtDate").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);
}
});
也可以重写DateBox的日期格式:
格式化日期格式
$.fn.datebox.defaults.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);
};