EXTJS日期字段验证

时间:2012-07-30 08:11:22

标签: javascript extjs extjs3

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

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

感谢。

2 个答案:

答案 0 :(得分: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
    }]
});?

答案 1 :(得分:0)

在dateField中使用getValue方法时,返回值为:Wed Jul 25 2012 00:00:00 GMT-0300 (BRT),但您可以使用Ext.util.Format.date(date, 'd/m/Y H:i:s');格式化日期,返回值为{{1 }。