2012-07-30 97 views
0

在EXTJS中,我有一个DateField。用户输入'abcd'到该字段,如果我得到值,它将返回一个空字符串,而不是'abcd'。EXTJS日期字段验证

我该如何强制用户为dateField输入正确的值?或者我如何才能获得该领域的真实投入?

谢谢。

+0

发布一些代码会有帮助。 ExtJs DateField确实有一些内置的验证。 – sha 2012-07-30 10:27:40

+0

相关:http://stackoverflow.com/q/5693512/320399 – blong 2013-02-19 16:03:34

回答

3

datefield还有一个getRawValue方法,它与getValue不同,因为它不应用任何getValue验证。

要强制用户输入正确的值,可以使用reMask属性。默认验证逻辑将允许无效输入,并将显示该条目对于红色突出显示等无效。 reMask掩码过滤键盘输入。在这个例子中,它限制为数字和正斜杠,并且可以扩展到任何需要的日期格式。

Ext.create('Ext.form.Panel', { 
    renderTo: Ext.getBody(), 
    width: 300, 
    bodyPadding: 10, 
    title: 'Dates', 
    items: [{ 
     xtype: 'datefield', 
     anchor: '100%', 
     fieldLabel: 'From', 
     emptyText: 'mm/dd/yyyy', 
     maskRe: /[0-9\/]/, 
     name: 'from_date', 
     maxValue: new Date() // limited to the current date or prior 
    }, { 
     xtype: 'datefield', 
     anchor: '100%', 
     emptyText: 'mm/dd/yyyy', 
     maskRe: /[0-9\/]/, 
     fieldLabel: 'To', 
     name: 'to_date', 
     value: new Date() // defaults to today 
    }] 
});? 
+0

maskRe,你使用不正确,因为如果用户只输入数字,他将被允许.. – 2013-06-17 08:52:58

0

当您在使用的DateField方法getValue的回报将是:Wed Jul 25 2012 00:00:00 GMT-0300 (BRT),例如,但可以使用,Ext.util.Format.date(date, 'd/m/Y H:i:s');格式的日期和回报率将是"25/07/2012 00:00:00"