When you render a Zend_Form, the elements will render to HTML compliance rather than XHTML compliance, even if you have < ?php echo $this->doctype('XHTML1_STRICT');?> at the top of your layout script. Practically, this means that all the input elements do not end in "/>".
To resolve this, you need to call the doctype() view helper prior to rendering your form.
Within my projects, I do this within a front controller plug-in called ViewSetup that looks a little like this:
class App_Controller_Plugin_ViewSetup extends Zend_Controller_Plugin_Abstract { public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { // setup the layout Zend_Layout::startMvc(); $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); $viewRenderer->init(); $view = $viewRenderer->view; $view->doctype('XHTML1_TRANSITIONAL'); $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8'); } }
Obviously, this class lives in the file library/App/Controller/Plugin/ViewSetup.php.
As you can see, I also set up the meta tag for the content-type to UTF-8 ready for rendering later.


