我正在尝试使用自定义vtype验证文本字段以过滤空格,例如:“”。
我在app.js中定义了我的自定义vtype(使用mvc模式)。

    Ext.Loader.setConfig({
        enabled : true,
        paths: {
            Ext: 'vendor/ext41/src',
            My: 'app'
        }
    });
    Ext.apply(Ext.form.field.VTypes, {
        descartarBlanco:  function(value) {
            return /^\s+$/.test(value);
        }
    });

    Ext.application({
        name: 'CRUDManantiales',
        appFolder: 'app',
        controllers: ['Ui','Usuarios'],
        ....
    });

但是,Firebug显示此错误:



我认为语法是正确的。但是,我不知道在哪里插入Vtype代码。
任何的想法 ?。
谢谢。

最佳答案

在渲染表单之前,我将自定义vtypes放在应用程序的 Controller 中。

Ext.define('MyApp.controller.Main', {
    extend: 'Ext.app.Controller',
    ...
    init: function () {
        var me = this;
        me.control({
            ...
            'form': {
                beforerender: this.applyVtypes
            },
            ...
        })
   },
   ...
   applyVtypes: function() {
       Ext.apply(Ext.form.field.VTypes, {
           descartarBlanco:  function(value) {
               return /^\s+$/.test(value);
           }
       }
   }
   ...
}

关于javascript - Extjs自定义vtype,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13417268/

10-09 23:09