2010-08-06 2 views
0

У меня есть форма, которую я пытаюсь добавить простой выберите элемент, используя следующий PHP:Zend Framework: Zend Form Выберите Генерировать Verbose HTML Использование MultiOptions

$dateFormat = new Zend_Form_Element_Select('dateFormat'); 
     $dateFormat->setLabel('Date Format:'); 
     $dateFormat->setRequired(true)->addValidator('NotEmpty'); 
     $dateFormat->addMultiOptions(array(
      'MM/dd/yyyy' => "US Standard   - MM/dd/yyyy", 
      'dd/MM/yyyy' => "Int'l Standard  - dd/MM/yyyy", 
      'MM-dd-yyyy' => "US Standard Dash - MM/dd/yyyy", 
      'dd-MM-yyyy' => "Int'l Standard Dash - dd/MM/yyyy", 
     )); 
     $this->addElement($dateFormat,'dateFormat'); 

Он оказывает на страницу просто отлично, однако он генерирует следующий XML:

<dt id="dateFormat-label"><label for="dateFormat" class="required">Date Format:</label></dt> 
<dd id="dateFormat-element"> 
<select name="dateFormat" id="dateFormat"> 
    <option value="MM/dd/yyyy" label="US Standard   - MM/dd/yyyy">US Standard   - MM/dd/yyyy</option> 
    <option value="dd/MM/yyyy" label="Int'l Standard  - dd/MM/yyyy">Int'l Standard  - dd/MM/yyyy</option> 
    <option value="MM-dd-yyyy" label="US Standard Dash - MM/dd/yyyy">US Standard Dash - MM/dd/yyyy</option> 

    <option value="dd-MM-yyyy" label="Int'l Standard Dash - dd/MM/yyyy">Int'l Standard Dash - dd/MM/yyyy</option> 
</select></dd> 

Почему Обрамление ..label="..." в <option> теге? Действительно ли это так, как это должно быть сделано для стандартов XHTML? У меня есть метод docthem для XHTML Strict.

ответ

0

Дополнительные теги могут быть удалены выборочно. Я привел пример ниже, который удаляет все ненужные декораторы для скрытого элемента:

<?php 
... 
public function init() 
{ 
... 

$this->addElement(new Zend_Form_Element_Hidden('configId')); 
     $cid = $this->getElement('configId'); 
     $cid->removeDecorator('DtDdWrapper'); 
     $cid->removeDecorator('HtmlTag'); 
     $cid->removeDecorator('Label'); 
     $cid->setRequired(true); 
} 
... 
?> 
0

Если все, что вы просите, является тегом метки, действительным xhtml strict. Вы можете запустить HTML через валидатор. Выполняя поиск в Google, я придумал this website, в котором рассказывается о тегах ярлыков в строгих стандартах XHTML. Стоит прочитать, но я считаю, что это действительно XHTML Strict.

Но если вы хотите проверить его W3C Validator Tool и посмотреть, разрешено ли оно или выбрасывает ошибки проверки.

Если вы хотите удалить его, то this SO Topic может вам помочь.

Смежные вопросы