ExtJS:默认验证

时间:2013-09-09 21:33:00

标签: extjs extjs4

95%的我的字段用于表单,我使用了自定义验证器 - >因此我将它包含在容器的defaults配置中。

但是,对于其余5%的字段,我想使用内置验证。有没有办法手动指定使用给定字段类型的默认验证器?

目前我试试,

{
    name: 'normalNumberField',
    xtype: 'numberfield',
    validator: Ext.form.field.Number.validate,
    ...
}

但我收到Ext.formundefined的错误(为什么?我明确提到Ext ...)

1 个答案:

答案 0 :(得分:2)

默认情况下未指定validator。数字字段验证分多个步骤进行(这取自ExtJS文档):

  
      
  1. 字段特定验证程序

         

    验证器提供了一种定制和重用验证规范的方法。如果字段配置了validator功能,   它将传递当前字段值。 validator功能   预计将返回:

         
        
    • 布尔值true如果值有效(验证继续)。
    •   
    • 如果无效(验证暂停),则表示无效消息的字符串。
    •   
  2.   
  3. 基本验证

         

    如果validator尚未停止验证,则基本验证将按如下方式进行:

         
        
    • allowBlank :(邮件无效= blankText

           

      根据allowBlank的配置,a   空白字段将导致验证在此步骤停止并返回   因此布尔值为true或false。

    •   
    • minLength :(邮件无效= minLengthText

           

      如果传递的值不满足minLength   指定,验证暂停。

    •   
    • maxLength :(邮件无效= maxLengthText

           

      如果传递的值不满足maxLength   指定,验证暂停。

    •   
  4.   
  5. 预配置的验证类型(VTypes)

         

    如果先前的验证步骤都没有停止验证,则为字段   使用vtype配置将使用相应的   Ext.form.field.VTypes验证功能。如果无效,要么是   将使用字段的vtypeText或VTypes vtype Text属性   对于无效的消息。将过滤该字段上的击键   根据VTypes vtype Mask属性。

  6.   
  7. 字段特定的正则表达式测试     如果先前的验证步骤都没有停止验证,则将处理字段配置的regex测试。该   此测试的无效邮件配置为regexText

  8.   
  9. 数字字段特定验证

         

    其他验证运行测试该值是一个数字,和   它在配置的最小值和最大值范围内。

  10.   

因此,长话短说,要覆盖您在validator中指定的defaults,您只需使用始终返回validator的{​​{1}}。

true