ExtJS中的日期验证

时间:2010-10-01 19:15:12

标签: javascript extjs

我有一个像这样的表格的日期字段:

{
                xtype:'datefield',
                name:'order[date]',
                id:'dato',
                format:'d-m-Y',
                allowBlank: false,
                cls:'input_single',
                emptyText:'dd-mm-yyyy',
                minValue:new Date().add('d',-1),
                onFocus: function(){
                    if (this.el.getValue() == 'dd-mm-yyyy') {
                        Ext.getCmp('dato').setValue('');    
                    }

                },
                msgTarget:'side',
                minText:'Must be future date',
                validationEvent:false


            }

现在我的问题是我想强制用户使用dd-mm-yyyy格式,但使用上面的代码,用户可以在2010年10月1日输入01102010。

我认为这种格式:'d-m-y'会强制这样,但它不会。

验证应该是客户端。

因此,该字段应该将日期重新格式化为01-10-2010 onblur,或者它应该不允许其他格式而不是dd-mm-yyyy。最后版本是首选:)

提前致谢!

2 个答案:

答案 0 :(得分:1)

刚刚在api文档中进行了一些研究并找到了

altFormats:'d-m-Y',

解决了这个问题。现在它只接受上述格式。

答案 1 :(得分:0)

您可以创建和使用自己的VType并包含它,您可以检查用户是否已进入有效日期。此外,它为您提供更多的可重用性。参考:http:docs /#!/ api / Ext.form.field.VTypes