【问题标题】:ExtJS 6.5.3.57 Form Field Validator Function not firingExtJS 6.5.3.57 表单字段验证器功能未触发
【发布时间】:2018-03-21 20:32:44
【问题描述】:

我正在尝试将验证器添加到 ExtJS 6.5.3.57 Classic 或 Modern 中的表单字段。我从阅读各种帖子中认为这应该可以工作,但是当我运行 myField.isValid() 时,它总是返回 true,并且我没有看到我的 console.log() 语句触发,所以我必须假设我的函数没有被调用。

{xtype: numberfield,
 name: 'myField',
 validator: function(field){
    console.log('testing my validator');
    return false;
  }
}

我也试过了,因为我不确定是validator 还是validators

{xtype: numberfield,
 name: 'myField',
 validators: {
    fn: function(field){
            console.log('testing my validator');
            return false;
        }
  }
}

我认为这应该有效吗?

这是一个小提琴,显示登录表单中的顶部字段上有一个验证器,但似乎从未将消息记录到屏幕或控制台。 https://fiddle.sencha.com/#fiddle/2eoa

【问题讨论】:

    标签: validation extjs6 extjs6.5


    【解决方案1】:

    你给出的第二个例子是有效的,我已经做了一个工作fiddle

    Ext.application({
        name : 'Fiddle',
    
        launch : function() {
            Ext.Viewport.add({
                xtype: 'textfield',
                validators: {
                    fn: function(v) {
                        return v === 'abc' || 'Value must be abc'
                    }
                }
            });
        }
    });
    

    【讨论】:

    • 我分叉了一个 MVVM 小提琴,并在登录屏幕中添加了一个验证器字段,它使用与您的示例相同的代码,但是验证器函数永远不会触发。这是 MVVM 的事情,还是表单的事情,这些验证器无法正常工作? fiddle.sencha.com/#fiddle/2enq
    • 版本不同,我的小提琴使用的是 6.5.3 现代的,你的使用的是 6.0.2 经典的,所以......你应该澄清一下。
    • 哦,好吧,我没有意识到。我实际上也在 6.5.3 现代版中进行开发,但仍然无法触发该验证程序。我会看看我是否可以更新小提琴以显示我的问题
    • 为简单起见,我将其保留在经典框架中,但升级到 6.5.3.57,仍然无法触发验证器。 fiddle.sencha.com/#fiddle/2eoa
    • 因为现代和经典的框架是不同的。使用经典作曲得 0 分。
    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多