Проверка Zend Form W3C с помощью HTML5 Doctype - PullRequest
1 голос
/ 14 марта 2012

Я использую декораторы для своих форм в приложении Zend Framework (версия 1.10.6), и они выводят элементы с атрибутом helper , который W3C находит недопустимым для HTML5 Doctype.

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

W3C Validator дает мне эту ошибку: Хелпер атрибутов не разрешен на входе элемента в данный момент.

1 Ответ

0 голосов
/ 08 апреля 2012

Ничего из того, что я нашел об этой проблеме, не работает, поэтому после многих часов попыток использования различных подходов мне было проще сменить ядро ​​(да, я знаю, что это не рекомендуется, но это все еще решение).

Вот ответ (для скрытого ввода):

  • Перейти к 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

...