Zend Framework:Zend_Form在表单标记中不包含'name'属性

时间:2011-07-13 10:16:57

标签: zend-framework zend-form zend-form-element

我有以下课程表格:

class Application_Form_ContactForm extends Zend_Form
{
    public function init()
    {
      $this->setName('contact_us');
     /* 
       I have also used follwing statements (one by one) to set name attribute 
       // $this->setAttrib('name', 'myForm-name');
       // $this->setAttribs(array('name' => 'frm', 'id' => 'frmlogin')); 
     */
    }
}

当我运行此表单时,我会得到以下HTML代码:

<form id="contact_us" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">

上面提到的html代码没有显示html标签形式的'name'属性。

有人可以在这方面指导我,如何纠正它。

2 个答案:

答案 0 :(得分:0)

HTML4中允许使用“name”属性,但在XHTML1.0中已弃用。 HTML规范不允许表单的“名称”属性。 Check Herehere

Zend Framework只是遵循规则。

但是为什么你还需要一个名字呢?几乎所有事情都可以使用class和id来完成。

但是,如果你真的需要它那么糟糕的尝试首先设置一个ID,然后是名称,它可能会有效。

答案 1 :(得分:0)

我正在尝试为表单字段的文本输入设置焦点。如果不指定'name'属性,则OnLoad焦点不起作用。如果不推荐使用'name',则必须有另一种方法来支持此焦点()。一个简单的例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       <title>Test</title>
    </head>
    <body OnLoad="document.InputForm.CMD.focus();">
       <div><b>Focus Test</b></div>
       <form ID="InputForm" method="post" action="">
           <input type="text" name="CMD" id="CMD" value="" size="50" />
           <input type="submit" name="OK" id="OK" value="OK" />
       </form>
</body>
</html>