ExtJS findExact()和自定义验证程序错误

科林

我在组合框上使用了自定义验证器:

function(v) {
    console.log(v === 'some value I know for SURE is in the store'); // (1)
    var index = this.getStore().findExact(this.displayField, v);
    return (index!==-1) ? true : 'Invalid selection';
}

基本上接受与forceSelection相同的设置,但允许用户键入任意文本以尝试自动完成。

然而; 我对的结果确实很奇怪findExact()例如,如果组合框的值当前有效,并且用户执行空格+退格键,则即使(1)的输出为true,验证器也会失败

任何想法导致问题的原因是什么?目前的最终体验是越野车的感觉。

克里斯托弗

当您键入其他空间时,将过滤存储。按退格键并触发验证器后,存储仍为空。

如果您有本地存储,则可以在每次更改后延迟一些时间来验证组合。例:

listeners: {
    change: function() {
        this.validate();
    },
    delay: 100
}

那应该足够了。

另一方面,如果您有远程存储,请尝试以下操作:

validator: function(v) {
    var store = this.getStore(),
        index = store.findExact(this.displayField, v);

    if (index === -1 && store.isLoading()) {
        store.on('load', function() {
            this.validate();
        }, this, { single: true, delay: 100 });
    }

    return (index !== -1) ? true : 'Invalid selection';
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ExtJS 自定义绑定

来自分类Dev

在EXTJS中作为组件进行自定义验证

来自分类Dev

ExtJS 4.2.1-表单自定义字段验证

来自分类Dev

Extjs使用getValue和setValue定义自定义字段

来自分类Dev

Extjs使用getValue和setValue定义自定义字段

来自分类Dev

ExtJS-如何自定义按钮?

来自分类Dev

EXTJS量规表自定义标签

来自分类Dev

ExtJS:默认验证

来自分类Dev

在extjs6应用程序构建中添加自定义文件

来自分类Dev

ExtJS和按钮

来自分类Dev

extjs 6网格自定义标头

来自分类Dev

EXTJS 5树网格自定义行CSS

来自分类Dev

在ExtJS 3中渲染自定义单选按钮

来自分类Dev

自定义ExtJS折线图系列

来自分类Dev

自定义组件ExtJS,不起作用setValue

来自分类Dev

Extjs-自定义消息框布局

来自分类Dev

自定义ExtJS CSS-一些困难

来自分类Dev

Extjs 4.2中的自定义组件的多个实例

来自分类Dev

extjs 6网格自定义标头

来自分类Dev

尝试使用 ExtJS 创建自定义面板

来自分类Dev

Extjs6 自定义 js 事件

来自分类Dev

如何在EXTJS中找到自定义类的来源

来自分类Dev

ExtJS 6.x (6.5.2) 现代自定义组件

来自分类Dev

带有自定义配置绑定的 Extjs6 自定义按钮

来自分类Dev

类定义中的Extjs itemId

来自分类Dev

类定义中的Extjs itemId

来自分类Dev

从extJS 4迁移到extJS 5:属性未定义

来自分类Dev

从extJS 4迁移到extJS 5:属性未定义

来自分类Dev

构建后调试ExtJS错误