一般Ext.form.DateField的活动日期为当前日期,若有需求要其初始值从yyyy/mm/dd开始,并且没有默认值,如何实现。查了半天API文档都没找到合适的属性改变其初始值,通过网页搜索页一无所获,最后通过查看ext源代码才知道了思路,现将解决方案实现如果。
var staff_birthday = new Ext.form.DateField({
id : 'user.staffBirthday',
fieldLabel : '出生日期',
width : 130,
startDateField : 'user.staffBirthday',
name : 'user.staffBirthday',
format : 'Y-m-d',
readOnly : true,
menuListeners : {
beforeshow : function() {
var myDate=new Date();
myDate.setFullYear(1970,0,1);
this.menu.picker.setValue(this.getValue()||myDate);
},
select : function(m, d) {
this.setValue(this.menu.picker.getValue());
}
}
});
代码说明如下:本DateField的活动初始值是1970年1月1日。
1:通过添加menuListeners监听事件即可实现改变其活动初始值,beforeshow事件,改变的是活动初始值,而select事件则是将所选的值赋值到文本区域。
2:javaScript中的Date的setFullYeay()方法的第二个参数的取值范围是0-11,所以要是日期为1970年1月1日,第二个参数应为0