Zend framework 如何从提交按钮中删除标签装饰器
在我的表格中,我有这个代码Zend framework 如何从提交按钮中删除标签装饰器,zend-framework,zend-form,Zend Framework,Zend Form,在我的表格中,我有这个代码 // Add the submit button $element = $this->addElement('submit', 'submit', array( 'ignore' => true, 'label' => 'Add new material' )); $element->removeDecorator('label'); 但是,表单仍然使用标签元素呈现在标签之间 我做错了什么?我认为removeDecorat
// Add the submit button
$element = $this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element->removeDecorator('label');
但是,表单仍然使用标签元素呈现在标签之间
我做错了什么?我认为
removeDecorator
的参数区分大小写。也就是说,它应该是“Label”
#注意大写的“L”
函数addElement返回对当前表单的引用,而不是对最后添加的元素的引用
你可以试试这个:
$form = new Zend_Form();
$form->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element = $form->getElement('submit');
$element->removeDecorator('label');
为了克服这个麻烦,我正在为我的元素手动定义装饰器
$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) 这对我很有效:
$this->addElements(array(
new Zend_Form_Element_Submit('submit', array(
'label' => 'Save'
))
));
$element = $this->getElement('submit');
$element->removeDecorator('DtDdWrapper');
我没有打印($element)为了找出
$element
存在哪些装饰器,我试着证明它没有任何区别。我在另一个答案中发现了这一点,但这样做似乎不正确,因为文档中没有描述如何做$元素->removeDecorator('DtDdWrapper')->addDecorator('HtmlTag',array('tag'=>'dd'));然而,即使从html中删除元素也不能解决我无法将submit按钮定位到左侧的问题;对此:$element->removeDecorator('Label');但还是不起作用?如果是这样的话,也许可以尝试var_dump(getDecorators())并让我们从那里开始