我有一个带有用 Extjs 设计的按钮的网页。当用户单击其中一个按钮时,会出现一个带有文本字段和下一步按钮的窗口。单击下一个按钮将加载另一个带有字段集的窗口,隐藏第一个。第二种形式的字段集数量将根据用户在第一个窗口中的输入进行调整。我正在尝试为此使用 for 循环。我使用的代码如下:
var win1, win 2, j;
var win1items = new Ext.form.FormPanel({
//snip
items: [{
xtype: 'fieldset',
defaultType: 'textfield',
items: [{
fieldLabel: 'Number',
allowBlank: false,
name: 'Number',
width: 110,
cls:"txtfield"
}]
}],
buttons: [{
text: 'Next',
handler: function(){
if(!win2){
winc2 = new Ext.Window({
//snip
items: [win2items]
});
}
win2.show(this);
win1.hide();
}
}]
});
j = Ext.getCmp('win1').getForm().findField("Number").getValue();
var fldComs = [];
for (i=0; i<=j; i++){
fldComs[i] = new Ext.form.FieldSet({
//snip
items: [{
//snip
}]
});
}
win2items = new Ext.form.FormPanel({
//snip
items: [fldComs]
});
Ext.onReady(function(){
new Ext.Toolbar({
renderTo: document.body,
items: [{
xtype: 'tbbutton',
text: 'Start Here',
cls: 'menu-icon',
handler: function(){
if(!win1){
win1 = new Ext.Window({
//snip
items: [win1items]
});
}
win1.show(this);
}
}]
});
});
我得到的错误是
未捕获的类型错误:无法调用未定义的方法“getForm”。
但是,如果我在 for 循环中使用固定值,例如 5,我将获得所需的输出。我正在使用分机 3.2.1