为Ext.form.DateField设置最小年份AVAILABLE

时间:2015-10-06 17:37:12

标签: javascript date extjs

我有一个基本的Ext.form.DateField,需要有一个最小日期。

足够简单 - 只需将m​​inValue字段设置为您想要的最小日期。例如,要将最小允许日期设置为当前月份和年份:

var myDateField = new Ext.form.DateField({ 
            fieldLabel: 'Date',
            value: new Date(),              
            columnWidth: 0.15,
            padding: 5,
            format: 'n/Y', 
            plugins: 'monthPickerPlugin',
            hidden: false,
            minValue: new Date()
        }); 

如果用户输入过去的日期,表单会显示一条错误消息,指出“此字段中的日期必须等于或等于......”和绑定的组件。

但是,我真正需要的是用户甚至无法从选择器中选择较早的一年。

基本上,当日历出现时,我需要它只显示2015年及以后 - 对于以下情况,2011年,2012年,2013年和2014年甚至不应出现在日历中。

提前致谢

enter image description here

1 个答案:

答案 0 :(得分:0)

不确定是否可行。

您可以使用 minValue disabledDates 配置来停用日期,但它们仍会显示在列表中。

但是,一旦用户选择了他们被禁用的月份,请参见下面的屏幕截图和示例:

disabled dates in calendar

ie. 

Ext.create('Ext.form.Panel', {
    renderTo: Ext.getBody(),
    width: 300,
    bodyPadding: 10,
    title: 'Dates',
    items: [{
        xtype: 'datefield',
        anchor: '100%',
        fieldLabel: 'From',
        name: 'from_date',
        minValue:"01/01/2015",
        disabledDatesText:"Date not available.",
        maxValue: new Date()  // limited to the current date or prior
    }]
});
<link href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css" rel="stylesheet"/>
<script src="//cdn.sencha.io/ext-4.2.0-gpl/ext-all.js"></script>