我为我的"编辑器设置了自定义验证器"领域。在那里,我想检查这个字段是否有效,并检查我的字段是否相互对应。但是当我在验证器中添加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
}
});
答案 0 :(得分:0)
您只需使用confirmationEditorValidator
为confirmationEditor
无限调用this.confirmationEditor.isValid()
函数。
Ext.form.field.Text
的 validator
个配置
在在字段验证期间调用的自定义验证函数(getErrors)。
getErrors()
中调用的