вторник, 15 марта 2011 г.

Особенности компонента Ext.form.Select

Только что обнаружил интересное и не совсем логическое поведение компонента Ext.form.Select. Дело в том, что если просто написать код, типа этого:

new Ext.form.Select({
  label: 'Select field',
  options: [
    {text: 'option 1'},
    {text: 'option 2'}
  ]
})

то на айфоне (я тестировал на iPhone 3gs) не будет вызываться меню выбора опции (Picker), хотя в настольном Safari всё работает.
Поведение, на мой взгляд, несколько непредсказуемое, но методом тыка удалось выяснить, что не хватает объявления параметра name, т. е. если написать вот так, то всё заработает:

new Ext.form.Select({
  name: 'selectField',
  label: 'Select field',
  options: [
    {text: 'option 1'},
    {text: 'option 2'}
  ]
})

Но и это ещё не всё! Теперь меню вызывается, но после нажатия на кнопку Done компоненту не применяется новое значение. В принципе, это поведение я уже могу назвать предсказуемым, поскольку в списке опций мы задали только свойство text , а свойство value не задано.
Вот, как должен выглядеть, работающий без проблем, компонент Ext.form.Select:

new Ext.form.Select({
  name: 'selectField',
  label: 'Select field',
  options: [
    {text: 'option 1', value: 'option1'},
    {text: 'option 2', value: 'option2'}
  ]
})

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

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