2014-11-22 83 views
0

CakePHP的代码删除DIV创建

<?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> 

我想删除自动生成的DIV在HTML输出,显示。如何删除由cakephp表单生成的那个div创建?在评论中已经提到

+0

你为什么要这么做? – ndm 2014-11-22 11:30:46

+0

我想要jQuery代码来检测我的表单中的div,但我不需要不必要的div。 – Sadikhasan 2014-11-22 11:33:13

+0

@ndm是否有可能不生成隐藏的div? – Sadikhasan 2014-11-22 11:38:54

回答

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

您的表单创建语法错误。 – Sadikhasan 2014-11-22 11:43:05

+0

对不起!它也生成div标签。 – Sadikhasan 2014-11-22 11:45:38

+0

确定这是正确的语法 – 2014-11-22 11:46:05

0

至于,你不应该删除标记,除了那只能通过完全覆盖FormHelper::create()是可能的,看到

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

唯一更简单的方法以除去包装,将是完全取消隐藏的包装,这将例如是能够通过使用用于HtmlHelper一个custom config其中hiddenblock标签被修改,使得它不包含包装,然而这不是一个好主意 - 不要这样做!

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

所以相反,只需让您的jQuery选择器更具体,不要只选择div元素,而是确保您的元素具有适当的类集,然后通过class选择它们。