У меня есть следующий литерал объекта , отправляемый на Ext JS Ext.FormPanel.
Эта форма имеет ряд полей формы , например, "Контакт с клиентом""," Причина контакта "и т. Д.
Каждый из них должен иметь тип раскрывающийся список вместо простого текстового поля , как они есть сейчас.
Я преобразовал первое поле в раскрывающийся список:
var form_customer_contact = new Ext.FormPanel({
frame:true,
labelWidth: 110,
labelAlign: 'right',
bodyStyle:'padding:0',
width: 300,
height: 600,
autoScroll: true,
itemCls: 'form_row',
defaultType: 'displayfield',
items: [{
fieldLabel: 'Customer Contact',
name: 'customerContact',
allowBlank:false,
value: 'Mr. Smith'
},{
fieldLabel: 'Reason for Contact',
width: 150,
xtype: 'combo',
mode: 'local',
value: '1',
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: 'Produkt',
name: 'reason',
hiddenName: 'reason',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'data correction', value: '1'},
{name : 'new contact', value: '2'},
{name : 'missing information', value: '3'}
]
})
}, {
fieldLabel: 'Communication',
name: 'communication',
value: 'test'
}, {
fieldLabel: 'Related Order',
name: 'relatedOrder',
value: 'test'
}, {
fieldLabel: 'Date/Time',
name: 'dateTime',
value: 'test'
}, {
fieldLabel: 'Notes',
name: 'notes',
value: 'test'
}
]
});
Теперь все остальные поля также необходимо преобразовать в раскрывающийся список, но посколькупримерно 80% кода останется прежним каждый, я хочу просто вызвать функцию , например, вот так:
getField('Reason for Contact', 'reason', {'data correction', 'new contact', 'missing information'})
getField('Communication', 'communication', {'telephone', 'fax', 'email'})
Что такоелучший способ создать функцию или объект в Javascript, который можно вызывать, как описано выше, чтобы уменьшить раздувание кода в этом примере?