我需要一个具有一些自定义行为的日期列,特别是我需要能够在同一字段中输入日期或年龄(年龄保持呈现为年龄,日期保持呈现为日期)
例如。输入“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 调试器显示日期的验证事件和验证功能正确,但是,当我尝试输入年龄(int)时,在点击输入字段后获取该值并尝试从中创建日期,将猜测的日期渲染回来进入现场并THEN验证被调用。
我能找到的唯一有记录的验证前事件是
stripCharsRe
默认为 NULL。
任何人都可以阐明这一点吗?
在这种情况下,我建议您使用/配置文本域 http://dev.sencha.com/deploy/dev/docs/?class=Ext.form.TextField作为编辑器组件并编写一个自定义验证器(就像在您的代码片段中一样)来验证值。
(我知道这并不能直接回答您的问题,但由于 DateField 是为了处理 Date 对象而构建的,因此您当前的方法将会充满问题)
EDIT -
如果必须使用日期选择器,请使用触发场 http://dev.sencha.com/deploy/dev/docs/?class=Ext.form.TriggerField作为您的基础组件并在其 onTriggerclick 上显示日期选择器 http://dev.sencha.com/deploy/dev/docs/?class=Ext.DatePicker。 (您必须设置一个处理函数,当用户使用此选择器选择日期时将调用该函数。请参阅 DatePicker.handler 配置选项)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)