前几天用到dijit.form.DateTextBox (version 1.6),用来做一个常见的日期控件,很简单的应用,但是网络上关于Dojo的资料并不多,有Dojo toolkit 当做API文档来检索,可是光秃秃的文字说明,不如真切的实例来的痛快。 下面和大家分享一下。
1.默认初始化当前日期:
var date = new Date(); var day = date.getDate().toString(); var year = date.getFullYear().toString(); var month = (date.getMonth()+1).toString(); var showDate =year+"-"+month+"-"+day; this.startTime.editorWidget.setDisplayedValue(showDate);
//修改时间2012-7-23,直接new Date给控件的value属性,会根据当前style显示当前日期。 new dijit.form.DateTextBox({constraints:{ },value: new Date()});
Ps:一开始,我对这东东不懂啊,就掰着API文档来看,来回浏览了几遍,靠着我得天独厚的职业敏感,就是它啦。
其实这个控件默认会选中当前日期,可是并不会显示出来,通过使用firebug查看,发现使用"yyyy-MM-dd"格式来处理日期值,然后直接丢给DateTextBox就可以显示当前日期了,很简单的。
2.获取日期控件值(所见即所得):
一般的checkBox或者comboBox控件,它们的显示机制,都是id-value形式,就和Map(键值对)一样的。我们在DateTextBox的使用过程中,通过上一步setDisplayedValue来设置默认显示日期,同时可以通过DateTextBox.displayedValue来获取当前的显示内容,并且符合我们的日期格式。
后面会继续和大家分享一些Dojo的应用实例,互相进步。
2012-4-16
继续分享:日期格式化
var startDate = this.startDate.get("value") || ""; if(startDate!=""){ startDate = dojo.date.locale.format( startDate,{selector:"date",datePattern:'yyyy-MM-dd' } ); }
2012-4-28
继续分享:让日期控件只可选日期间隔内的日期值,之外的日期值不可选.
new dijit.form.DateTextBox({ constraints:{ min: 日期间隔的起始日期,max: 日期间隔的结束日期 },value: 默认日期 });
查看dojo API 官方Demo : 地 址