3

FormHelper->create(...) を使用すると、レンダリングされる HTML は次のようになります。

<form action="/blogs/add" method="post" accept-charset="utf-8">
    <div style="display:none;">
        <input type="hidden" name="_method" value="POST">
    </div>

    <!-- omitted: form inputs -->
</form>

display:none; の div はなぜですか。そこにスタイル?表示されないようにするにはどうすればよいですか?

更新: 明確にするために、なぜ div と div 内の非表示の入力の両方が表示されるのか疑問に思っています。それらは必要ないように思われるので、そこに置いてほしくないのです。

4

5 に答える 5

1

div は有効な HTML にするためにあります。

非ブロックレベル要素 ( など) は、HTML5 までタグ<input>内で直接有効ではありません。ソース<form>

編集:あなたの質問に答えるために、それを簡単に取り除くことはできません. FormHelper::create() にハードコーディングされているため、カスタム ヘルパーでそのメソッドをオーバーライドする必要があります。一体、なぜそれがあなたを悩ませているのですか?

于 2012-07-20T02:32:32.930 に答える
0

このリンクが役立つ場合があります。

FormHelper->create() メソッドを使用するたびに、デフォルトの HTTP メソッドをオーバーライドするために非表示の入力フィールドが生成されます。type optionを渡すことで変更することもできます。うまくいかない場合は、お気軽にお問い合わせください。

于 2012-07-20T04:30:33.173 に答える
0

試す:

echo $this->Form->create('User', array(
'inputDefaults' => array(
    'div' => false
   )
));

div は、フォームの入力では作成されません。

于 2012-07-20T08:17:24.787 に答える
-1

hiddenField=>falseプロパティを使用します

于 2012-07-20T03:09:38.460 に答える