在dojo filteringselect中设置默认值

时间:2009-07-26 10:21:06

标签: zend-framework dojo zend-form

我正在尝试使用Zend Framework获取启用Dojo的表单的过滤选择工作。该表单允许用户更新其详细信息,例如地址,网址等。但是,表单中的元素使用filiteringselect来处理国家和州/县等事情。

我希望将此值设置为默认值,并在填充时将其传递给表单,但这不起作用。

我正在填写表格,如

$form->getElement('country')->setValue($country); 

$ country将是英国,法国,西班牙等国家的价值观......

这些值存储在数据库的[id],[name]表中。可以通过Zend表单中的元素访问它

$county  = new Zend_Dojo_Form_Element_FilteringSelect('county');
    $county->setRequired(true)
        ->setStoreId('countystore')
        ->setStoreType('dojo.data.ItemFileReadStore')
        ->setStoreParams(array('url' => $baseUrl.'/dojo/counties'))
        ->setAttrib('searchAttr', 'name')
        ->removeDecorator('DtDdWrapper')
        ->removeDecorator('label')
        ->removeDecorator('HtmlTag');

但是填充/默认元素的setValue不起作用。是否有使用Zend_Forms和Dojo执行此操作的特定方法?

提前致谢...

2 个答案:

答案 0 :(得分:3)

在直接的道场中,你可以这样做:

  dijit.byId('myFiltertingSelect').attr('value',newValue);

您应该只需添加:

  ->setAttrib('value',$newValue)

答案 1 :(得分:3)

使用Zend_Dojo_Form_Element_FilteringSelect,这将起作用(ZF 1.10.7):

$form->getElement('country')->setAttrib('displayedValue', $country);

Straight Dojo Way:

dijit.byId('country').attr('displayedValue', newValue);

http://dojotoolkit.org/api/dijit/form/FilteringSelect.html#displayedValue