在EXTJS中,我有一个DateField。用户输入'abcd'到该字段,如果我得到了值,它将返回一个空字符串,而不是'abcd'。
如何强制用户为dateField输入正确的值?或者我如何才能获得该提交的真实输入?
感谢。
答案 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 }。