在我的表格中,我有这段代码;
// Add the submit button
$element = $this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element->removeDecorator('label');
然而,表单仍然使用标签之间的标签元素进行渲染。
我做错了什么?
答案 0 :(得分:17)
这对我有用:
$this->addElements(array(
new Zend_Form_Element_Submit('submit', array(
'label' => 'Save'
))
));
$element = $this->getElement('submit');
$element->removeDecorator('DtDdWrapper');
我做了print_r($element);
以找出$element
。
答案 1 :(得分:11)
函数addElement返回对当前表单的引用,而不是最后添加的元素。
你可以试试这个:
$form = new Zend_Form();
$form->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element = $form->getElement('submit');
$element->removeDecorator('label');
答案 2 :(得分:3)
我认为removeDecorator
的论点区分大小写。即,它应该是"Label"
#注意大写'L'
。
答案 3 :(得分:1)
为了克服这种麻烦,我正在为我的元素手动定义装饰器......
$details->addElement('text', 'in_year', array(
'decorators'=>array(
'ViewHelper',
array('HtmlTag', array('tag' => 'span')),
)
));
您当然可以定义自己的标签。在这个例子中,我只初始化“ViewHelper”装饰器。如果我想初始化“Label”装饰器,我会这样做:
$details->addElement('text', 'in_year', array(
'decorators'=>array(
'ViewHelper',
'Label',
array('HtmlTag', array('tag' => 'span')),
),
'attribs' => array('class' => 'required validate-digits')
));
我希望这有道理......:o)