微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的属性,你可以参考.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐