我正在使用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中的错误吗?
答案 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。您使用的是自定义表单类还是可能影响它的任何其他内容?
答案 1 :(得分:1)
在我看来,您使用的是非标准FormSelect
视图助手。对于初学者,您的<option>
value
属性和文本值相反,您没有label
属性。
例如,
$state->addMultiOption('Pear','PE');
生成的标记应为
<option value="Pear" label="PE">PE</option>
由于不透明样式属性,我还猜测有一些JavaScript在玩DOM。