【问题标题】:extjs show validation when switching tabsextjs 在切换选项卡时显示验证
【发布时间】:2011-03-18 14:11:19
【问题描述】:

嗨, 我希望有人可以在这里帮助我使用 extjs 框架。

我遇到的问题是没有为在面板初始化时不可见的选项卡呈现字段验证。

它只有在单击文本字段时才开始工作。

我需要的是在激活选项卡时强制验证字段的验证提示。

编辑 我想出了这个

Ext.getCmp('aanMakenGebruikerTabPanel').on('tabchange',function(){
        AanMakenGebruikerWindow.syncShadow();
        Ext.getCmp('Mobiel1Veld').on('render',function(v){v.validate();});
        Ext.getCmp('Email1Veld').on('render',function(v){v.validate();});
        //console.log("[aanMakenGebruikerTabPanel] resize -- sync");
    });

编辑 我通过使用级联函数解决了这个问题,因此它也可以到达字段集中的项目。

Ext.getCmp('aanMakenGebruikerTabPanel').on('tabchange',function(tabPanel,tab){
        AanMakenGebruikerWindow.syncShadow();
        tab.cascade(function(item) {
   if (item.isFormField) {
    item.validate();
  }
} );
    });

谢谢,理查德

【问题讨论】:

    标签: validation frameworks extjs textfield tabpanel


    【解决方案1】:

    deferredRender 选项默认为true。将其设置为 false 有帮助吗?

    {
       xtype: 'tabpanel',
       deferredRender: false, 
       items: []
    }
    

    【讨论】:

      【解决方案2】:

      在您的选项卡面板配置对象中添加beforetabchange/tabchange 事件的侦听器。在处理程序中,您必须遍历已激活选项卡中包含的字段并触发每个字段的验证。希望这会有所帮助。

      【讨论】:

      • 我编辑了我的问题。你的意思是这样添加吗?我必须找出如何循环。所以它正在向前发展。
      • 是的,这就是一般的想法。您也可以在配置对象中实例化新的 tabPanel 时执行此操作。添加 listeners 对象定义的详细信息请参考 api。您不必每次都获取 Cmp,tabchange 事件提供对当前选项卡/面板的引用,该选项卡/面板具有其包含的字段的集合,您可以遍历并触发验证。我相信您拥有它的方式,验证只会在第一次激活选项卡时触发。您可能不想使用该字段的渲染事件来触发验证。
      • 我试图找出循环需要如何工作。有什么建议?稍后我将查看配置对象。我认为这与听众无关:{ 'eventname':function(){etc}}
      • 有趣,我之前没有遇到过级联函数 - 看起来它正是你想要使用的 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 2021-09-27
      • 1970-01-01
      相关资源
      最近更新 更多