在选择框下拉列表中设置“选定”值 - 基于第一个字母

时间:2011-01-19 07:09:48

标签: zend-framework select zend-form

我有一个zend表单,其中有一个带有1000+ id->名称选项的选择框按字母顺序排序。 渲染并在浏览器中查看时,如果您键入Ch,它会一直显示该选项;

有没有办法在表格初始化后通过前几个字母设置要选择的值?换句话说$form->getElement('name')->setSelected('Ch')或类似的;

我知道使用setValue(34)我可以设置要选择的ID为34的名称。

1 个答案:

答案 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;
}