Я использую Ext JS 3.4, и в составном поле есть три поля, код приведен ниже:
xtype: 'compositefield',
name: 'comboField',
fieldLabel: 'Partner with',
width: 400,
cItems:[{
xtype: 'combo',
name: 'partnerTypeCombo',
value: 'ProviderName',
mode: 'local',
store: new Ext.data.ArrayStore({
fields: ['id', 'displayValue'],
data: [
['ProviderName', 'Provider Partner Name'],
['OtherProvider', 'Other Provider Partner']
]
}),
valueField: 'id',
displayField: 'displayValue',
listeners: {
scope: this,
select: function(combo, record, index) {
var providerField = this.formPanel.getForm().findField('comboField_providerPartnerNameField');
var otherProviderField = this.formPanel.getForm().findField('comboField_otherProviderPartnerNameField');
if (combo.value == "OtherProvider") {
providerField.setVisible(false);
otherProviderField.setVisible(true);
}
else {
providerField.setVisible(true);
otherProviderField.setVisible(false);
}
}
}
}, {
xtype: 'spacer',
width: 10,
flex: 0
}, {
xtype: 'modellinkfield',
name: 'providerPartnerNameField',
modelLevelType: 'Organization',
modelType: 'Organization',
pickerReport: {
reportName: 'TMS.SupplierVendorOrgPicker',
targetLevelType: 'Organization'
}
}, {
xtype: 'textfield',
name: 'otherProviderPartnerNameField',
hidden: true
}]
Используя вышеуказанный код и , не скрывая ни одного поля Я получил следующий результат
Но я ожидаю, что
- По умолчанию третье поле (текстовое поле)должен быть скрыт
- При выборе значений Combobox следующие два поля должны быть видимыми / скрытыми.Например, если в раскрывающемся поле указано «Имя партнера поставщика», тогда должно быть видно только второе поле (поле моделирования) (показано ниже)
- А если в раскрывающемся поле указано «Имя другого поставщика», то должно быть видно только третье поле (т. Е. Текстовое поле).Но я не могу достичь этой третьей цели.Я получаю следующий вывод для этого (поле переопределяется)
И я ожидаю следующий вывод.
Похоже, это может быть какая-то проблема с макетом или, возможно, мне нужно применить какой-то стиль CSS для решения этой проблемы.Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.