2016-01-29 3 views
0

У меня есть форма, содержащая элементы и кнопка 'add' для динамического добавления поля в форму (дублируйте первое поле). Какую функцию, чтобы связать с кнопкой, чтобы сделать это Вот мой код:Extjs 4: добавление динамических полей в форму при нажатии кнопки

 var form new Ext.form.FormPanel({ 
      items   : [{ 
       xtype: 'fieldcontainer', 
       combineErrors: true, 
       msgTarget : 'side', 
       layout: 'hbox', 
       items: [{ 
        xtype  : 'displayfield', 
        margin  : '0 10 0 0' 
       },{ 
        xtype  : 'button', 
        text  : 'select' 
       }] 
      }] 
      ,buttons: [{ 
       text : 'Add field' 
      }] 
     }) 

ответ

0

Я думаю, вы должны определить функцию, нажмите кнопку (или дать Itemid застегивать и определить функцию в контроллере, где вы можете получить доступ к . форма детали объекта массива и добавить динамический '' fieldcontainer объект, чтобы сформировать см ниже фрагмент кода:

в Вид:

,buttons: [{ 
      text : 'Add field', 
      itemId : 'addField' 
     } 

в контроллере:

refs : [{ 
    selector : 'viewport form', 
    ref : 'myForm' 
}, 
init : function(){ 
    this.control({ 
     '#addField':{ 
      click : this.addFieldContainer 
     } 
     }); 

}, 

addFieldContainer: function(){ 
var form = this.getMyForm(); 
form.items.push({ 
      xtype: 'fieldcontainer', 
      combineErrors: true, 
      msgTarget : 'side', 
      layout: 'hbox', 
      items: [{ 
       xtype  : 'displayfield', 
       margin  : '0 10 0 0' 
      },{ 
       xtype  : 'button', 
       text  : 'select' 
      }] 
     }); 

} 

Надеюсь, это поможет.

Смежные вопросы