我有一个zend表单,其中有一个带有1000+ id->名称选项的选择框按字母顺序排序。
渲染并在浏览器中查看时,如果您键入Ch
,它会一直显示该选项;
有没有办法在表格初始化后通过前几个字母设置要选择的值?换句话说$form->getElement('name')->setSelected('Ch')
或类似的;
我知道使用setValue(34)
我可以设置要选择的ID为34的名称。
答案 0 :(得分:1)
自己编写代码
class My_Form_Element_Select extends Zend_Form_Element_Select{
/**
* Sets the the first option to start with certain letters to be selected
* @param string $string The first few letters to search for
*/
public function setSelected($string){
$string = strtolower($string);
$options = $this->_getMultiOptions();
$length = strlen($string);
foreach($options as $value => $option){
if($string == strtolower(substr($option,0,$length))){
$this->setValue($value);
break;
}
}
return $this;
}