2009-07-28 9 views
10

Trong biểu mẫu của tôi, tôi có mã này;Làm cách nào để xóa trang trí nhãn từ nút gửi

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

Tuy nhiên biểu mẫu vẫn hiển thị với phần tử nhãn giữa các thẻ.

Tôi đang làm gì sai?

Trả lời

3

Tôi nghĩ đối số là removeDecorator phân biệt chữ hoa chữ thường. Tức là, nó phải là "Label" # lưu ý chữ hoa 'L'.

+0

Tôi đã thử rằng nó không tạo ra bất kỳ sự khác biệt nào. Tôi đã tìm thấy câu trả lời này trong một câu trả lời khác, nhưng có vẻ như không đúng khi thực hiện theo cách này vì đó không phải là cách tài liệu hướng dẫn cách thực hiện. $ element-> removeDecorator ('DtDdWrapper') -> addDecorator ('HtmlTag', mảng ('tag' => 'dd')); Tuy nhiên, ngay cả việc xóa phần tử

khỏi html cũng không giải quyết được vấn đề tổng thể của tôi về việc không thể định vị nút gửi khó ở bên trái. –

+0

Vì vậy, bạn đã thay đổi điều này: $ element-> removeDecorator ('label'); này: $ element-> removeDecorator ('Label'); và nó vẫn không hoạt động? Nếu đó là trường hợp có thể thử var_dump (getDecorators()) và chúng ta hãy đi từ đó. – g33kz0r

11

Hàm addElement trả về tham chiếu đến biểu mẫu hiện tại chứ không phải thành phần được thêm gần đây nhất.

Bạn có thể thử này:

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

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

Ngoài ra Zend_Db_Element không có hàm addElement Zend_Db_Form có – Erik

1

Để khắc phục phiền toái này tôi xác định bằng tay các trang trí cho các phần tử của tôi ...

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

Bạn có thể dĩ nhiên định nghĩa các thẻ của riêng bạn. Trong ví dụ này, tôi chỉ khởi tạo trang trí "ViewHelper". Nếu tôi muốn để khởi sự "Label" trang trí tôi sẽ làm:

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

Tôi hy vọng điều này có ý nghĩa ...: o)

18

này đã làm việc cho tôi:

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

tôi đã làm print_r($element); để tìm hiểu những gì trang trí tồn tại cho $element.