規約に同意のようなチェックボックスのバリデーションを作っているのですが、エラーメッセージが表示されません。
これ以外のバリデーションはちゃんと表示されます。
HTML
1<!--フォーム--> 2<?php echo $this->Form->create('Hoge', array('type'=>'file', 'div'=>false, 'id'=>false)); ?> 3<div class="check_agreebox"> 4<?php echo $this->Form->input('agree', array('type'=>'checkbox', 'value'=>'agree', 'div'=>false, 'id'=>'agree', 'label'=>'同意', 'class'=>false, 'required'=>false, 'error'=>false)); ?> 5<span class="error"><?php echo $this->Form->error('Hoge.agree'); ?></span> 6</div> 7・ 8・ 9<?php echo $this->Form->end(); ?>
PHP
1//Model 2 public $validate = array( 3 'agree' => array( 4 'custom_agree' => array( 5 'rule' => array('custom_agree'), 6 'message' => '同意してください。', 7 //'required' => true, 8 ), 9 ); 10 11 //オリジナルバリデーション 12 function custom_agree($num) { 13 foreach ($num as $value) { 14 if ($value == 'agree') { 15 return true; 16 } else { 17 return false; 18 } 19 } 20 } 21
ルールとしてequalTo
やcomparison
等も使ってみましたがダメでした。
なのでオリジナルのルールを作りましたがやはりダメでした。
'required' => true
を加えるとエラーメッセージが表示されますが、チェックしてもしなくても表示されます。
原因と思われるものがわかりましたらご教授頂きたいです。
チェックボックスで自動生成されるhidden
フィールドなどは関係無いですよね。
どうぞ宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/24 02:35 編集
退会済みユーザー
2016/02/24 07:07 編集
2016/02/24 05:33 編集
退会済みユーザー
2016/02/24 05:35
2016/02/24 06:28
退会済みユーザー
2016/02/24 06:50
2016/02/24 06:54
2016/02/24 06:59
退会済みユーザー
2016/02/24 07:07
2016/02/24 07:12