我有一个formpanel,它被扩展为创建一个从另一个文件调用的类。 设置的工作原理是它显示正确。
我面临的问题是,每当我按下提交按钮时,我都会在Firebug中收到错误“this.getForm is not function”。
我的代码来自一个与我完全相同的设置的教程,所以我不明白为什么我一直收到这个错误。
SearchForm = Ext.extend(Ext.FormPanel, {
id: 'myForm'
,title: 'Search Form'
,frame:true
,waitMessage: 'Please wait.'
,initComponent: function() {
var config = {
items: [{
layout:'column',
items:[{
columnWidth:.3,
layout: 'form',
items: [{
xtype:'combo',
id: 'reportSelecCmb1',
hiddenName: 'ddi_country',
anchor:'98%',
store: dateStore,
displayField: 'name',
valueField: 'alpha2code',
selectOnFocus: true,
mode: 'local',
typeAhead: true,
editable: false,
triggerAction: 'all',
value: 'report_date',
listeners: {
select: {
fn:function(combo, value){
myStore.load({params:{ddi_country: this.value}});
}
}
}
},
...
}],
buttons: [{
text: 'Submit',
id: "submitBtn",
handler: this.submit
},{
text: 'Reset'
}]
}]};
// apply config
Ext.apply(this, config);
Ext.apply(this.initialConfig, config);
SearchForm.superclass.initComponent.apply(this, arguments);
}
,submit : function(url, waitMsg) {
this.getForm().submit({
url: url
,scope: this
,waitMsg: waitMsg
,success: this.onSuccess
//,failure: this.onFailure
})
}
,onSuccess: function(form, action) {
Ext.Msg.show({
title: 'Success'
,msg: 'Success!'
,modal: true
,icon: Ext.Msg.INFO
,buttons: Ext.Msg.OK
});
}
});
答案 0 :(得分:1)
您的按钮存在范围问题。
通过添加指向 this 的范围:
,将按钮定义更改为以下内容buttons: [{
text: 'Submit',
id: "submitBtn",
handler: this.submit,
scope: this
},{
text: 'Reset'
}]
希望它有所帮助。