2009-07-28 17 views
10

etiket dekoratörünü nasıl kaldırabilirim Bu kodum var; Bununla birlikte, form yine de etiketler arasında etiket elemanı ile birlikte oluşturulmasına rağmen.Gönderme düğmesinden,

Neyi yanlış yapıyorum?

cevap

3

removeDecorator argümanının büyük/küçük harfe duyarlı olduğunu düşünüyorum. Yani, "Label" # olmalıdır, büyük harfle 'L'.

+0

Bunun bir fark yaratmadığını denedim. Bunu başka bir yanıtta buldum, ancak bu şekilde belgelerin nasıl yapılacağı değil, bu şekilde yapılması doğru görünmüyor. $ element-> removeDecorator ('DtDdWrapper') -> addDecorator ('HtmlTag', dizi ('etiket' => 'dd')); Bununla birlikte,

öğesinin html'den kaldırılması bile, gönderme düğmesini zor sola yerleştirememe konusundaki genel sorunumu çözmedi. –

+0

Yani, bunu değiştirdiniz: $ element-> removeDecorator ('label'); buna: $ element-> removeDecorator ('Label'); ve hala işe yaramadı mı? Bu durumda belki de var_dump (getDecorators()) 'ı deneyin ve oradan gidelim. – g33kz0r

11

İşlev addElement, son eklenen öğeye değil, geçerli forma bir başvuru döndürür.

Bu deneyebilirsiniz:

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

$element = $form->getElement('submit'); 
$element->removeDecorator('label'); 
+0

Ayrıca Zend_Db_Element işlevi yoktur addElement Zend_Db_Form vardır – Erik

1

benim element için elle dekoratörler tanımlayan ediyorum bu sıkıntı aşmak için ... Elbette kendi etiketlerini tanımlayabilirsiniz

$details->addElement('text', 'in_year', array(
    'decorators'=>array(
    'ViewHelper', 
    array('HtmlTag', array('tag' => 'span')), 
    ) 
)); 

. Bu örnekte sadece "ViewHelper" dekoratörünü başlatıyorum. Ben "Etiket" dekoratör initialize istiyorsanız yapardım:

$details->addElement('text', 'in_year', array(
    'decorators'=>array(
    'ViewHelper', 
    'Label', 
    array('HtmlTag', array('tag' => 'span')), 
    ), 
    'attribs' => array('class' => 'required validate-digits') 
)); 

Bu mantıklı umut ...: o)

18

Bu benim için çalıştı:

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

yaptım $element için dekoratörler bulunduğunu öğrenmek için print_r($element);.