使用HTML5 Doctype验证Zend Form W3C

时间:2012-03-14 17:33:13

标签: html5 zend-form w3c-validation

我在Zend Framework(版本1.10.6)应用程序中为我的表单使用装饰器,并输出具有属性帮助的元素,W3C认为这些元素对HTML5 Doctype无效。

<input type="hidden" name="control" value="search" helper="formHidden" id="control">

W3C Validator给我这个错误: 此时元素输入上不允许使用属性助手。

1 个答案:

答案 0 :(得分:0)

我发现这个问题没有找到工作,所以经过几个小时尝试不同的方法后,我发现更容易改变核心(是的,我知道不推荐它,但它仍然是一个解决方案)。

这是答案(隐藏输入):

  • 转到 Zend / View / Helper / FormHidden.php
  • 在文件末尾你会找到这行代码

    return $this->_hidden($name, $value, $attribs);
    
  • 添加此代码之前

    unset($attribs['helper']);
    

它的作用是从应用于输入隐藏元素的属性数组中删除辅助属性。

这同样适用于所有表单元素。

输入文字示例:

  • 转到 Zend / View / Helper / FormText.php
  • 在文件的末尾,您会找到这些代码行

    $xhtml = '<input type="text"'
           . ' name="' . $this->view->escape($name) . '"'
           . ' id="' . $this->view->escape($id) . '"'
           . ' value="' . $this->view->escape($value) . '"'
           . $disabled
           . $this->_htmlAttribs($attribs)
           . $endTag;
    
    return $xhtml;
    
  • 添加此代码之前

    unset($attribs['helper']);
    

为所有表单元素执行此操作我的网站通过了W3C HTML5验证,因此我对此解决方案感到满意并希望通过Zend Framework 2.0解决此问题