我需要一个带有一些自定义行为的日期列,特别是我需要能够在相同的字段中输入日期或年龄(年龄保持呈现为年龄和日期保持呈现为日期)
EG。输入“23”将在字段中留下“23”作为有效值,或输入“22/1/88”将“22/1/88”作为有效值。
所以我尝试了一个日期列,其编辑器定义如下(注意验证覆盖):
editor: {
xtype: 'datefield',
format: 'd/m/Y',
validate: function(){
if(!this.value.match(SOME_REGEX){
if(!this.value.match(SOME_REGEX){
return false;
}
}
return true;
}
}
Chrome调试器显示验证事件和验证功能正确用于日期但是,当我尝试输入age(int)时,在点击输入字段后获取值并尝试从中生成日期,呈现猜测日期回到字段中,然后调用那么验证。
我能找到的唯一记录的before-validate事件是
stripCharsRe
默认为NULL。
任何人都可以对此有所了解吗?
答案 0 :(得分:2)
在这种情况下,我建议您使用/配置TextField作为编辑器组件,并编写自定义验证器(就像在您的代码段中一样)来验证值。
(我知道这不会直接回答你的问题,但由于DateField是为了处理Date对象而构建的,因此当前的方法会遇到问题)
编辑 -
如果必须使用日期选择器,请使用TriggerField作为基本组件,并在其onTriggerclick上显示DatePicker。 (您必须设置一个处理程序函数,当用户使用此选择器选择日期时将调用该函数。请参阅DatePicker.handler配置选项)