javascript – ExtJs表单验证

我在ExtJs中有这个表单.如果field1不为空,则field2不能为空.但即使听众正在解雇,它也无法正常工作.

 {
    xtype: 'panel',
    title: 'title 1',
    items: [{
        xtype: 'fieldset',
        title: 'field A',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Line 1',
            id: 'field1',
            listeners: {
                change: function(f, new_val) {
                    if (new_val) {
                        //alert("change" + new_val);
                        f.field2.allowBlank = false;
                    } else {
                        f.field1.allowBlank = true;
                    }
                }
            }
            code for field2
        }]
    }]
}

最佳答案:

部分答案:

您的代码不起作用的原因是因为allowBlank是一个配置值 – 它只在创建组件时有效.我一直看到这个错误 – 在浏览API文档时,您需要记住所有这些配置选项仅在创建对象时有效 – 它们不是可以设置为修改现有对象行为的公共属性.

也就是说,我很惊讶API中没有setAllowBlank()方法.如果我能找到办法,我会继续环顾四周并修改这个答案.

编辑:从我阅读TextField源代码看,你的方法应该可行.所以问题是为什么不是.

编辑2:您可能无法获得对TextFields的引用. f.field1可能没有指出你的想法.您可以通过在TextField配置中添加ref:’field1’来解决此问题.然后你的FormPanel将有一个名为field1的属性,你可以参考.

相关文章

我有一个问题,我不知道如何解决.我有一个Indy10HTTP服务器.我...
我正在使用sdk1.17开发一个Firefox附加组件.它包含一个带有按...
Ext.define('PhysicsEvaluationSystemV1.view.base.Bas...
默认所有列(假设列3最大3列,动态显示),使用headerRowsEx中...
序言   1.ExtJs是一套很好的后台框架。现在很流行的,我们...
我在ExtJs中有这个表单.如果field1不为空,则field2不能为空....