我有一个表单,我试图添加一个简单的选择元素使用以下PHP:
$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标准完成的吗?我将我的doctype设置为XHTML Strict。
答案 0 :(得分:0)
如果您要问的是,标签标签是否有效xhtml strict。您可以通过验证程序运行HTML。进行谷歌搜索我想出了this website,它谈到了XHTML严格标准中的标签标签。值得一读,但我相信它是有效的XHTML严格。
但是如果你想验证它W3C Validator Tool并查看它是否被允许/抛出验证错误。
如果您要删除它this SO Topic可能对您有所帮助。
答案 1 :(得分: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);
}
...
?>