使用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>
为什么这个div与display:none;风格吗?如何让它不显示?
更新:为了清楚,我想知道为什么div中的div和隐藏输入都显示出来。它们似乎没有必要,因此我不希望它们在那里。
答案 0 :(得分:2)
对于最近来到这里的人来说,现在有一个简单的解决方案,它不涉及自定义助手。使用FormHelper templates,有问题的代码块由'hiddenBlock'模板生成。 (请参阅此处的完整默认模板列表:https://api.cakephp.org/3.2/class-Cake.View.Helper.FormHelper.html#%24_defaultConfig)。
因此,修改CakePHP文档中给出的示例以匹配此案例并删除隐藏if(ivBall.equals(Color.RED))
{
Toast.makeText(getApplicationContext(), "good", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "wrong", Toast.LENGTH_SHORT).show();
}
周围的包裹<div>
以获取_method(假设为HTML5):
<input>
我遇到了这个问题,因为我最近实施了一个不允许内联样式的内容安全策略,我想我应该分享我的工作解决方案。
答案 1 :(得分:1)
div是有效的HTML。
在HTML5之前,非块级元素(例如
<input>
)在<form>
标记内无效。 Source
编辑:要回答你的问题,你不能轻易摆脱它。它被硬编码到FormHelper :: create()中,你必须在自定义帮助器中覆盖该方法。为什么打扰你呢?
答案 2 :(得分:0)
This link可能会对您有所帮助。
每当使用FormHelper-&gt; create()方法时,都会生成一个隐藏的输入字段来覆盖默认的HTTP方法。您也可以通过传递type option来更改它。请问它是否对你不起作用。
答案 3 :(得分:0)
尝试:
echo $this->Form->create('User', array(
'inputDefaults' => array(
'div' => false
)
));
不会在表单的任何输入上创建div。
答案 4 :(得分:-1)
使用hiddenField =&gt;虚假财产