10

在我的表格中,我有这个代码;

// Add the submit button
$element = $this->addElement('submit', 'submit', array(
    'ignore'   => true,
    'label' => 'Add new material'
));
$element->removeDecorator('label');

但是,表单仍会在标签之间使用标签元素呈现。

我究竟做错了什么?

4

4 回答 4

17

这对我有用:

$this->addElements(array(  
  new Zend_Form_Element_Submit('submit', array(  
    'label' => 'Save'  
  ))  
));  
$element = $this->getElement('submit');  
$element->removeDecorator('DtDdWrapper');

我确实print_r($element);找出了存在的装饰器$element

于 2010-03-08T18:55:00.477 回答
11

函数 addElement 返回对当前表单的引用,而不是对最后添加的元素的引用。

你可以试试这个:

$form = new Zend_Form();
$form->addElement('submit', 'submit', array(
    'ignore'   => true,
    'label'     => 'Add new material'
));

$element = $form->getElement('submit');
$element->removeDecorator('label');
于 2009-08-04T11:24:43.120 回答
3

我认为 to 的论点removeDecorator是区分大小写的。即,它应该是"Label"# 注意大写'L'

于 2009-07-28T21:55:24.360 回答
1

为了克服这种麻烦,我手动为我的元素定义了装饰器......

$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)

于 2009-08-20T08:33:09.820 回答