【发布时间】:2016-07-20 16:23:12
【问题描述】:
我正在使用 CakePHP 3,我需要两个相同形式的按钮,一个用于取消,另一个用于发送数据,为了实现这一点,我为取消按钮设置了一个特定的名称,并在控制器中查找它时数据通过POST接收。
我的看法是这样的:
<div class="pacientes form large-9 medium-8 columns content">
<?= $this->Form->create($variable) ?>
<fieldset>
// Some inputs
</fieldset>
<?= $this->Form->button(__d('menu', 'send')) ?>
<?= $this->Form->button(__d('menu', 'cancel'), ['name' => 'cancelSubmit']) ?>
<?= $this->Form->end() ?>
</div>
控制器相关代码:
public function add()
{
// Some code
if ($this->request->is('post')) {
if(isset($this->request->data['cancelSubmit'])){
return $this->redirect($this->referer());
}
// More code
}
// A bit more code
}
问题在于验证,如果表单有一些必需的输入,取消按钮不起作用,因为它会触发表单验证并显示一条消息,告诉该字段不能为空。
我尝试添加
`formnovalidate` => true
选项(如docs 中所述)以多种方式指向cancel 按钮,但它不起作用。
目标是让提交按钮发送数据(带验证)和取消按钮返回上一页(不验证)。任何人都知道如何做到这一点以及为什么“formnovalidate”不起作用?我做错什么了吗?
非常感谢
【问题讨论】:
标签: php html validation cakephp button