95%的我的字段用于表单,我使用了自定义验证器 - >因此我将它包含在容器的defaults
配置中。
但是,对于其余5%的字段,我想使用内置验证。有没有办法手动指定使用给定字段类型的默认验证器?
目前我试试,
{
name: 'normalNumberField',
xtype: 'numberfield',
validator: Ext.form.field.Number.validate,
...
}
但我收到Ext.form
为undefined
的错误(为什么?我明确提到Ext
...)
答案 0 :(得分:2)
默认情况下未指定validator
。数字字段验证分多个步骤进行(这取自ExtJS文档):
字段特定验证程序
验证器提供了一种定制和重用验证规范的方法。如果字段配置了
validator
功能, 它将传递当前字段值。validator
功能 预计将返回:
- 布尔值
true
如果值有效(验证继续)。- 如果无效(验证暂停),则表示无效消息的字符串。
基本验证
如果
validator
尚未停止验证,则基本验证将按如下方式进行:
allowBlank
:(邮件无效=blankText
)根据
allowBlank
的配置,a 空白字段将导致验证在此步骤停止并返回 因此布尔值为true或false。
minLength
:(邮件无效=minLengthText
)如果传递的值不满足
minLength
指定,验证暂停。
maxLength
:(邮件无效=maxLengthText
)如果传递的值不满足
maxLength
指定,验证暂停。预配置的验证类型(VTypes)
如果先前的验证步骤都没有停止验证,则为字段 使用
vtype
配置将使用相应的Ext.form.field.VTypes
验证功能。如果无效,要么是 将使用字段的vtypeText
或VTypes vtype Text属性 对于无效的消息。将过滤该字段上的击键 根据VTypes vtype Mask属性。字段特定的正则表达式测试 如果先前的验证步骤都没有停止验证,则将处理字段配置的
regex
测试。该 此测试的无效邮件配置为regexText
- 醇>
数字字段特定验证
其他验证运行测试该值是一个数字,和 它在配置的最小值和最大值范围内。
因此,长话短说,要覆盖您在validator
中指定的defaults
,您只需使用始终返回validator
的{{1}}。
true