我有以下课程表格:
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'属性。
有人可以在这方面指导我,如何纠正它。
答案 0 :(得分:0)
HTML4中允许使用“name”属性,但在XHTML1.0中已弃用。 HTML规范不允许表单的“名称”属性。 Check Here和here。
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>