我有一堆面板,其中一个没有表格。在面板之间导航时,我需要检查form.isDirty()。显然,只要我没有打开任何形式的面板,它就可以正常工作。它是一种卡片布局,我目前正在使用:
Ext.getCmp('内容面板&#39)。getForm()isDirty()
如果面板实际上有一个表单,我需要在执行此行之前检查。是否可以在ExtJS 4中执行此操作?
答案 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()返回不同的值。