ExtJS:默认验证
对于我拥有的表单,95%的字段使用自定义验证器->因此我将其作为容器的ExtJS:默认验证,extjs,extjs4,Extjs,Extjs4,对于我拥有的表单,95%的字段使用自定义验证器->因此我将其作为容器的默认配置的一部分 但是,对于其余5%的字段,我希望使用内置验证。对于给定的字段类型,是否有方法使用默认验证器手动指定 现在我试着 { name: 'normalNumberField', xtype: 'numberfield', validator: Ext.form.field.Number.validate, ... } 但是我得到一个错误,Ext.form是未定义的(为什么?我显然有一
默认配置的一部分
但是,对于其余5%的字段,我希望使用内置验证。对于给定的字段类型,是否有方法使用默认验证器手动指定
现在我试着
{
name: 'normalNumberField',
xtype: 'numberfield',
validator: Ext.form.field.Number.validate,
...
}
但是我得到一个错误,Ext.form
是未定义的
(为什么?我显然有一个Ext
…)默认情况下未指定验证程序。数字字段验证分多个步骤进行(此步骤取自ExtJS文档):
特定于字段的验证器
验证器提供了一种定制和重用验证规范的方法。如果字段配置了验证程序
功能,
它将被传递当前字段值。验证程序
功能
预计将返回:
- 布尔值
true
如果值有效(验证继续)
- 如果无效(验证停止),则表示无效消息的字符串
基本验证
如果验证器
未停止验证,则基本验证按如下方式进行:
allowBlank
:(无效消息=blankText
)
根据allowBlank
的配置
空白字段将导致验证在此步骤停止并返回
相应地布尔值为真或假
minLength
:(无效消息=minLengthText
)
如果传递的值不满足minLength
指定时,验证将停止
maxLength
:(无效消息=maxLengthText
)
如果传递的值不满足maxLength
指定时,验证将停止
预配置的验证类型(VTypes)
如果之前的任何验证步骤都不会停止验证,则会显示一个字段
配置了vtype
将使用相应的
Ext.form.field.VTypes
验证功能。如果无效,则
将使用字段的vtypeText
或VTypes vtype Text属性
对于无效消息。字段上的击键将被过滤
根据VTypes vtype掩码属性
特定于字段的正则表达式测试
如果之前的任何验证步骤都没有停止验证,则将处理字段的已配置regex
测试。这个
使用regexText
数字字段特定验证
附加验证运行测试,以确保该值是一个数字,并且
它是否在配置的最小值和最大值范围内
因此,长话短说,要覆盖您在默认值中指定的验证器
,只需使用始终返回true的验证器
{
name: 'normalNumberField',
xtype: 'numberfield',
validator: function(){ return true; },
...
}