1

我有以下表格类:

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' 属性。

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

4

2 回答 2

0

“name”属性在 HTML4 中是允许的,但在 XHTML1.0 中已被弃用。HTML 规范不允许表单的“名称”属性。检查这里这里

Zend Framework 只是遵循规则。

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

但是,如果您真的需要它,请尝试先设置一个 ID,然后再设置名称,它可能会起作用。

于 2011-07-13T10:26:23.300 回答
0

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

<!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>
于 2013-02-18T09:40:23.573 回答