понедельник, 28 марта 2011 г.

ExtJS ComboBox не отправляет valueField?

При использовании в формах ExtJS выпадающего списка ComboBox вы, должно быть, заметили проблему: форма отправляет отображаемое значение выпадающего списка (displayField), а не его фактическое значение (valueField). Если провести аналогию с обычным <select> HTML - отправляется Вася, а не 3.

<select name="user">
    <option value="1">Саша</option>
    <option value="2">Иннокентий</option>
    <option value="3">Вася</option>
</select>

Чтобы решить данную проблему и заставить ExtJS отправлять 3 вместо Вася, необходимо добавить конфигурационный параметр hiddenName:


var userName = new Ext.form.ComboBox({
    id:'userName',
    name: 'userName',
    fieldLabel: 'Имя',
    store: usersStore,
    displayField: 'name',
    valueField: 'id',
    hiddenName : 'razdel'
});

Будьте внимательны, параметр hiddenName должен быть уникальным для каждого поля формы - он используется при ее отправке вместо параметра name.

Протестировать параметры при отправке формы удобно с помощью Firebug.

Комментариев нет:

Отправить комментарий