2011-09-05 90 views
0

我正在使用Zend 1.11.10,我试图在下拉列表中设置一个值。我的代码是:Zend_Form_Element_Select setValue选择多个选项

$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中的一个错误吗?

回答

1

在我看来,你正在使用非标准的FormSelect视图帮手。对于初学者,您的<option>value属性和文本值将颠倒过来,并且您没有label属性。 例如,对于

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

生成的标记应该是

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

我还大胆地猜测有一些JavaScript与DOM玩,由于透明度样式属性。

+0

有一位助手正在编写HTML并导致此错误。所以这不是框架中的错误。 –

+0

谢谢菲尔。我很感激。 –

1

使用你的代码完全是我得到:

<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。你使用自定义表单类还是其他可能影响它的东西?