Extjs 如何检查面板是否包含表单?
我有一堆面板,其中一个没有表格。在面板之间导航时,我需要检查form.isDirty()是否正确。很明显,只要我没有在没有表格的情况下击中面板,它就可以正常工作。这是一种卡片布局,我目前正在使用: Ext.getCmp('content-panel').getForm().isDirty()Extjs 如何检查面板是否包含表单?,extjs,extjs4.2,Extjs,Extjs4.2,我有一堆面板,其中一个没有表格。在面板之间导航时,我需要检查form.isDirty()是否正确。很明显,只要我没有在没有表格的情况下击中面板,它就可以正常工作。这是一种卡片布局,我目前正在使用: Ext.getCmp('content-panel').getForm().isDirty() 在执行这一行之前,我需要检查面板是否有表单。是否可以在ExtJS4中执行此操作?找到了一个解决方法。以防其他人也在寻找同样的东西 我把我的陈述分成以下几部分 var formCmp=Ext.getCmp('
在执行这一行之前,我需要检查面板是否有表单。是否可以在ExtJS4中执行此操作?找到了一个解决方法。以防其他人也在寻找同样的东西 我把我的陈述分成以下几部分 var formCmp=Ext.getCmp('content-panel');然后 称为formCmp.getForm
注意:getForm和getForm()返回不同的值。此代码适用于需求,我们可以访问面板的“form”属性。如果面板包含表单,则此属性返回表单对象,如果面板不包含表单,则返回满足您需求的“undefined”
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
}
组件查询应该帮助您检查面板中是否有表单,并且您必须检查面板是否是表单
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
}
我相信getCmp是基于id检索组件的。下面是一篇非常好的文章,介绍了为什么使用itemId和其他实践可以更好地避免这种情况