2012-07-30 114 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"