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