Как удалить декоратор меток из кнопки отправки
В моей форме у меня есть этот код;
// Add the submit button
$element = $this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element->removeDecorator('label');
Однако форма по-прежнему отображает элемент метки между тегами.
Что я делаю неправильно?
Ответы
Ответ 1
Это сработало для меня:
$this->addElements(array(
new Zend_Form_Element_Submit('submit', array(
'label' => 'Save'
))
));
$element = $this->getElement('submit');
$element->removeDecorator('DtDdWrapper');
Я сделал print_r($element);
, чтобы узнать, какие декораторы существуют для $element
.
Ответ 2
Функция addElement возвращает ссылку на текущую форму не на последний добавленный элемент.
Вы можете попробовать следующее:
$form = new Zend_Form();
$form->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element = $form->getElement('submit');
$element->removeDecorator('label');
Ответ 3
Я думаю, что аргумент removeDecorator
чувствителен к регистру. I.e, это должно быть "Label"
# отметить прописную букву 'L'
.
Ответ 4
Чтобы преодолеть эту неприятность, я определяю вручную декораторы для моего элемента...
$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)