Проблема с заполнением baseParams формы
Пробую делать это так:
var win = Ext.create('Ext.window.Window', { title: 'Новый альбом', width: 400, height: 200, closeAction : 'hide', layout: 'fit', modal: true, items: [{ xtype: 'form', id: 'newAlbumForm', method: 'POST', border: '0px', bodyStyle: {padding: '5px'}, items: [{ xtype: 'textfield', fieldLabel: 'Название', id: 'name' }, { xtype: 'fieldset', layout: 'fit', style: {padding: '4px'}, title: 'Описание', items: [{ xtype: 'textarea', id: 'description' }] }], baseParams: { name: Ext.getCmp('name').value, description: Ext.getCmp('description').value, } }], buttons: [{ text:'Сохранить', handler: function() { Ext.getCmp('newAlbumForm').submit({ url: '/album/src/newalbum.php', success: function(form, action){ Ext.MessageBox.alert('', action.result.message); }, failure: function(form, action){ Ext.MessageBox.alert('', action.result.message); } }); } },{ text: 'Отменить', id: 'cancel' }] }); Получаю TypeError: Ext.getCmp(...) is undefined Если использовать вместо Ext.getCmp Ext.get('name'), то возвращается null. Внутри handler-а кнопки Ext.getCmp('name').value работает. Попробовал получить оттуда baseParams через this.up('form').baseParams: this.up(...) is undefined |
И зачем вам baseParams если вы отправляете данные только из видимых полей?
И id я бы тут для полей не использовал. У полей есть имена по которым к ним можно обратиться (или inputId можно использовать), а id предполагает уникальность в рамках проекта (с большой долей вероятности у вас еще гдето может быть другая сущность/атрибут name). Вот этот кусок неверный так как в момент его выполнения нет еще ни экземпляра поля name ..ни description: baseParams: { name: Ext.getCmp('name').value, description: Ext.getCmp('description').value, }Ну и как я уже написал baseParams тут не нужен: var win = Ext.create('Ext.window.Window', { title: 'Новый альбом', width: 400, height: 200, closeAction : 'hide', layout: 'fit', modal: true, items: [{ xtype: 'form', id: 'newAlbumForm', method: 'POST', border: '0px', bodyStyle: {padding: '5px'}, items: [{ xtype: 'textfield', fieldLabel: 'Название', name: 'name' }, { xtype: 'fieldset', layout: 'fit', style: {padding: '4px'}, title: 'Описание', items: [{ xtype: 'textarea', name: 'description' }] }] }], buttons: [{ text:'Сохранить', handler: function() { Ext.getCmp('newAlbumForm').submit({ url: '/album/src/newalbum.php', success: function(form, action){ Ext.MessageBox.alert('', action.result.message); }, failure: function(form, action){ Ext.MessageBox.alert('', action.result.message); } }); } },{ text: 'Отменить', id: 'cancel' }] }); |
Спасибо!
|
Часовой пояс GMT +3, время: 23:11. |