Zend_Form_Element_Select setValue выбирает более одного варианта - PullRequest
0 голосов
/ 05 сентября 2011

Я использую Zend 1.11.10 и пытаюсь установить значение в раскрывающемся списке. Мой код:

    $state = new Zend_Form_Element_Select("mytest");
    $state->setLabel("mytest")  
    ->setName("mytest");

    $state->addMultiOption('Pear','PE');
    $state->addMultiOption('Banana','BA');
    $state->addMultiOption('Orange','OR');
    $state->addMultiOption('Kiwi','KI');

    $state->setValue('Banana');

    $this->addElement($state);

Проблема в том, что сгенерированный HTML-код:

<select id="mytest" name="mytest" style="opacity: 0;"><option value="PE">Pear</option><option selected="selected" value="BA">Banana</option><option selected="selected" value="OR">Orange</option><option selected="selected" value="KI">Kiwi</option></select>

Делает «выбранными» все опции после «Банана». Это ошибка в Zend?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Похоже, вы используете нестандартный FormSelect помощник вида. Для начала, ваш <option> value атрибут и текстовые значения поменялись местами, и у вас нет label атрибутов. Например, для

$state->addMultiOption('Pear','PE');

сгенерированная разметка должна быть

<option value="Pear" label="PE">PE</option>

Я бы также рискнул предположить, что с DOM играет некоторый JavaScript-код из-за атрибута opacity style.

1 голос
/ 06 сентября 2011

Используя ваш код точно, я получаю:

<select name="mytest" id="mytest"> 
    <option value="Pear" label="PE">PE</option> 
    <option value="Banana" label="BA" selected="selected">BA</option> 
    <option value="Orange" label="OR">OR</option> 
    <option value="Kiwi" label="KI">KI</option> 
</select>

это также с 1.11.10.Используете ли вы пользовательские классы форм или что-то еще, что может повлиять на это?

...