我尝试在select元素的onchange上添加一个表单输入Elemnt。 我有这段代码:
$this->addElement('select', 'nationality', array(
'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
'required' => true,
'label' => 'Nation',
'filters' => array('StringTrim'),
'onChange' => '???'
));
我尝试粘贴我的新元素而不是“???”
$this->addElement('select', 'nationality', array(
'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
'required' => true,
'label' => 'Nation',
'filters' => array('StringTrim'),
'onChange' => '$this->addElement(
'text', 'codice_fiscale', array(
'required' => true,
'label' => 'Codice fiscale',
'required' => true
))'
));
我知道不正确,但我没有找到任何关于它的文档。 如何在更改选择值上添加元素?
提前致谢
答案 0 :(得分:0)
如果您有可能,我会以不同的方式解决问题: javascript函数调用onChange。这将是语法正确(并且,正如你所说,你所写的不正确,它将完全打印出onChange属性,而不是通过php解释)。
所以,我会写
'onChange' => 'addElement()'
然后声明处理新元素的javascript函数。或者,您可以在之前准备元素(如果您有固定的数字),并显示/隐藏它们。如果你没有太多元素可能会很方便,但如果它们太多,只需通过javascript添加所需元素。
PseudoCode Javascript
function addElement()
{
// add your element here, or show / hide it
}
据我的经验和类似案例所见
(Zend_form_element_select onchange in zend framework,
Zend Form: onchange select load another view content)
如果您想要处理" onChange"
,您将无法逃脱Javascript