10

私のフォームには、このコードがあります。

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

ただし、フォームはタグ間の 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 に答える
3

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 に答える