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 コードは、form html タグの 'name' 属性を表示しません。

この点について、修正方法を教えてもらえますか。

4

2 に答える 2

0

"name" 属性は HTML4 で許可されていますが、XHTML1.0 では廃止されています。HTML 仕様では、フォームの「名前」属性は許可されていません。こことここを確認してください。

Zend Framework はルールに従っているだけです。

しかし、とにかく名前がフォームである必要があるのはなぜですか? class と id を使用して、ほとんどすべてのことを実行できます。

ただし、本当に必要な場合は、最初に ID を設定してから名前を設定してみてください。うまくいく可能性があります。

于 2011-07-13T10:26:23.300 に答える
0

フォーム フィールドのテキスト入力にフォーカスを設定しようとしています。「name」属性を指定しないと、OnLoad フォーカスは機能しません。「名前」が廃止された場合、この focus() をサポートする別の方法が必要です。簡単な例:

<!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 に答える