簡體   English   中英

Zend框架:Zend表單選擇使用MultiOptions生成詳細HTML

[英]Zend Framework: Zend Form Select Generate Verbose HTML Using MultiOptions

我有一種形式,我試圖使用以下php添加一個簡單的select元素:

$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>

為什么要在<option>標記中放入..label="..." 這實際上是應該針對XHTML標准執行的操作嗎? 我的文檔類型設置為XHTML Strict。

您只想問問標簽標記是否為有效的xhtml strict。 您可以通過驗證器運行HTML。 進行Google搜索時,我想到了這個網站該網站討論了XHTML Strict標准中的標簽。 值得一讀,但我相信它是有效的XHTML Strict。

但是,如果您想對其進行驗證,則可以使用W3C驗證程序工具並查看是否允許它/拋出驗證錯誤。

如果您希望刪除它,那么此SO主題可能會對您有所幫助。

可以有選擇地刪除多余的標簽。 我在下面給出了一個示例,該示例刪除了隱藏元素的所有不必要的裝飾器:

<?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);
}
...
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM