私はCakePHP 3を使用しています。同じフォームに2つのボタンが必要です.1つはキャンセルのため、もう1つはデータを送信するためには、これを達成するためにキャンセルボタンと特定の名前を設定しますデータがPOST
を介して受信されたときに、コントローラ内に格納されます。'formnovalidate' not working CakePHP 3
私の見解は次のようになります。
<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
}
問題は、フォームがいくつか必要な入力を持っている場合はインクルードはボタンがあるため動作しないキャンセル、検証が付属していますフォームの検証がトリガーされ、フィールドが空ではないことを示すメッセージが表示されます。
私は多くの点でcancel
ボタンに
`formnovalidate` => true
オプションを(docsに言ったように)追加しようとしたが、それは動作しません。
目標は、データを送信するための送信ボタンと、検証なしの前のページに戻るキャンセルボタンを持つことです。誰もこれを行う方法を知っている、なぜ 'formnovalidate' doesnt 'の仕事ですか?私は間違って何かしていますか?
はあなたにむしろフォームを送信キャンセルボタンを持つよりも非常に
はい、私は知っていますが、ボタンとして追加したいと思いますが、これは達成できないとは思わない –
ボタンを間違いなくリンクにすることができます。これをチェックしてください: http://stackoverflow.com/questions/20740668/creating-buttons-with-links-using-cakephps-html-form-helpers – bill
さらに簡単に言えば、リンクを追加してクラスを定義するだけです'=>' button'' http://book.cakephp.org/3.0/ja/views/helpers/html.html#creating-links – bill