我有代碼:ExtJS的 - 表單提交
win = desktop.createWindow({
id: 'admin-win',
title: 'Add administration users',
width: 740,
height: 480,
iconCls: 'icon-grid',
animCollapse: false,
constrainHeader: true,
xtype: 'form',
bodyPadding: 15,
url: 'save-form.php',
items: [{
xtype: 'textfield',
fieldLabel: 'Field',
name: 'theField'
}],
buttons: [{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
form.submit({
success: function (form, action) {
Ext.Msg.alert('Success', action.result.message);
},
failure: function (form, action) {
Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response');
}
});
}
}
}]
});
和按鈕不起作用。它會產生錯誤 - this.up('form')是未定義的。我怎樣才能在這樣的代碼中調用getForm()?
更新: 非常感謝您的快速回復! 我修改你的代碼爲我的需求,這是它,並將它與桌面實例的工作原理:
win = desktop.createWindow({
id: 'admin-win',
title: 'Add administration users',
width: 740,
iconCls: 'icon-grid',
animCollapse: false,
constrainHeader: true,
items: [{
xtype: 'form',
bodyPadding: 15,
url: 'save-form.php',
items: [{
xtype: 'textfield',
fieldLabel: 'Field',
name: 'theField'
}],
buttons: [{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
this.up().up().submit({
success: function (form, action) {
Ext.Msg.alert('Success', action.result.message);
},
failure: function (form, action) {
Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response');
}
});
}
}
}]
}]
});
這是您的完整的代碼?什麼desktop.createWindow做什麼?我問這是因爲你似乎試圖創建一個窗口,但使用Ext.form.Panel選項。 – davidbuzatto 2012-08-13 21:43:17
它基於ExtJS桌面示例。我只想用窗體創建窗口。 – 2012-08-13 21:49:08
那麼你複製/粘貼這段代碼? – davidbuzatto 2012-08-13 21:49:47