如何检查面板是否包含表单?

时间:2014-12-17 22:00:11

标签: extjs extjs4.2

我有一堆面板,其中一个没有表格。在面板之间导航时,我需要检查form.isDirty()。显然,只要我没有打开任何形式的面板,它就可以正常工作。它是一种卡片布局,我目前正在使用:

Ext.getCmp('内容面板&#39)。getForm()isDirty()

如果面板实际上有一个表单,我需要在执行此行之前检查。是否可以在ExtJS 4中执行此操作?

3 个答案:

答案 0 :(得分:2)

此代码符合要求,我们可以访问'表格'面板的属性。如果面板包含表单,则此属性返回表单对象作为回报,如果面板不包含表单,则返回“未定义”表单。满足了你的要求。

var formFlag = Ext.getCmp('content-panel').form;
if(formFlag  === undefined){
   console.log('form is absent');
}else{
   console.log('form is present');//formFlag is the form object in this case
}

答案 1 :(得分:1)

组件查询应该可以帮助您检查面板中是否有表单,并且您必须检查面板是否是表单

var panel = Ext.getCmp('content-panel');
//Check if this is a form
var isForm = panel.form
//Check if an inner panel is a form
var hasForm = panel.query('form');
if(isForm && hasForm.length > 0){
  //Is or has a form
}

答案 2 :(得分:0)

找到了解决方法。发布以防万一其他人可能正在寻找同样的事情。

我在以下

中分享了我的陈述

var formCmp = Ext.getCmp('content-panel');然后 调用formCmp.getForm

注意:getForm和getForm()返回不同的值。