删除由CakePHP Form create生成的div

时间:2014-11-22 11:26:47

标签: cakephp

CakePHP代码

<?php echo $this->Form->create('KPI');?>

HTML输出

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

我想删除在html输出中显示的自动生成的div。如何删除由cakephp表单生成的div创建?

2 个答案:

答案 0 :(得分:1)

正如评论中已经提到的那样,你不应该删除那个标记,除此之外只能通过完全覆盖FormHelper::create()来实现,参见

另请注意,表单末尾可能还有一个隐藏块,请参阅FormHelper::secure()

删除包装器的唯一更简单的方法是完全删除隐藏的包装器,例如可以使用HtmlHelper hiddenblockdiv标签修改,以便它不包含包装器,但这不是一个好主意 - 不要这样做!

这里的问题是,你不能只删除这个特定的包裹input元素,隐藏的divinput齐头并进。 POST确保CakePHP能够确定正确的请求方法(PUTDELETEdiv)。

因此,只需简单地使您的jQuery选择器更具体,不要只选择class元素,而是确保您的元素具有正确的类集,然后按{{1}}选择它们。

答案 1 :(得分:0)

    <?php echo $this->Form->create('Kpi', array(
              'inputDefaults'=>array('div'=>'false', 'label'=>false)));
         ?>