代码之家  ›  专栏  ›  技术社区  ›  Jacob

在Sencha Architect 3.0中创建自定义vType

  •  2
  • Jacob  · 技术社区  · 12 年前

    如何在Sencha Architect 3.0中为表单字段验证创建自定义vtype。我只找到了一种方法来包含已经内置的类型,但我想创建一个自定义类型并包含它。

    3 回复  |  直到 12 年前
        1
  •  3
  •   monstergold    12 年前
    1. 创建一个新的基于js的资源(或使用现有资源)。
    2. 定义vtype

      Ext.apply(Ext.form.field.VTypes, {
          myFancyValidator: function(val, field) {
              //... returns true if valid, false if not
          }
      }
      
    3. 在项目检查器上,浏览到要验证的字段/编辑器

    4. 应用vtype:'myFancyValidator'
        2
  •  0
  •   Jonathan Michel    9 年前

    在架构师内部,单击项目检查器中的+ 向上单击“添加”菜单。

    选择资源->JS资源。

    将URL设置为一个位置(resources/myVtypes.js)*这是一个文件系统位置,因此除非您需要根目录,否则不要包含尾斜杠。

    右键单击资源并选择“编辑代码”--这将显示 一个空白文件,您可以将类粘贴到其中,并在architect中对其进行编辑。

    正常保存项目以更新资源。

        3
  •  -1
  •   user3283976    12 年前

    下面是为验证pincode编号创建自定义vtype的示例:

    Ext.define('Ext.form.field.VTypes', {
    
        pin: /(?!(.)\1\1).{3}/,
    
        init: function () {
            var me = this;
    
            //pin number
            this.pinFn();
            //etc..
        },
        pinFn:function () {
            var me = this;
    
            Ext.apply(Ext.form.field.VTypes, {
                pin:function (val, field) {
                    //check value
                    return me.pin.test(val);
                },
                pinText: 'Wrong PIN number (numbers cannot be identical)'
            });
        }
    });
    

    创建后,您可以在表单中包含

    {

    fieldLabel:'PIN号码',

    name:'pin',

    最小长度:4,

    最大长度:4,

    vtype:'pin'//coustom vtype

    },