ExtJs 4.2.4 isValid in custom Validator:Uncaught RangeError:超出最大调用堆栈大小

时间:2016-12-20 14:23:02

标签: extjs

我为我的"编辑器设置了自定义验证器"领域。在那里,我想检查这个字段是否有效,并检查我的字段是否相互对应。但是当我在验证器中添加this.confirmationEditor.isValid()时,我收到此错误:"未捕获RangeError:超出最大调用堆栈大小"。

 Ext.define('My.view.common.MyPanelBase', {
    extend: 'Ext.Panel',

    constructor: function (config) {
        if (config) {
            Ext.applyIf(config.editorConfig, {allowBlank: false,
        maskRe: /[0-9]/,
        regex: /^[0-9]+$/,
        enforceMaxLength: true,
        maxLength: 6,
        anchor: '95%',
        inputType: 'password'});
        }
        Ext.apply(this.config, config);
        this.initializeEditors();
        this.initConfig();
    },

    initializeEditors: function () {
        this.editor = Ext.create('Ext.My.TextField', Ext.apply(this.config.editorConfig, {
            validator: this.editorValidator.bind(this),
            fieldLabel: this.config.editorLabel
        }));
        this.confirmationEditor = Ext.create('Ext.My.TextField', Ext.apply(this.config.editorConfig, {
            validator: this.confirmationEditorValidator.bind(this),
            fieldLabel: this.config.confirmationEditorLabel
        }));
    },

    confirmationEditorValidator: function () {
       //here I get the error
        return this.confirmationEditor.isValid() && this.compareFields();
    },

    compareFields: function () {
        return //some logic
    }
});

1 个答案:

答案 0 :(得分:0)

您只需使用confirmationEditorValidatorconfirmationEditor无限调用this.confirmationEditor.isValid()函数。

Ext.form.field.Text

validator个配置

  

在字段验证期间调用的自定义验证函数(getErrors)。

getErrors()

中调用的

isValid()方法