doutuo1939 2014-01-14 14:50
浏览 15

CakePHP 2.4.4如果选中复选框,则显示并验证另一个字段

My question is similar to: cakePHP - form - if checkbox is selected show and validate another field.
I have a set of fields in a form:

/* view */
echo $this->Form->input('immagine', array('type' => 'checkbox'));
echo $this->Form->input('url');

and the model, with the validation rules:

/* model */
class Question extends AppModel {
    public $validate = array(
            'url' => array(
                'required_if_checked'=>array(
                    'rule'=>array('requiredIfChecked', 'immagine'),
                    'message'=>'cannot be blank if foo is checked',
                )
            )
        );
    public function requiredIfChecked($check, $associatedField) {
        $value = array_pop($check);
        if ($this->data[$this->alias][$associatedField] && empty($value)) {
            return false;
        }
        else {
            return true;
        }
    }
}

On the page, the url field is marked as required either the checkbox is ticked or not.
I've tried adding

'required' => false,
'allowEmpty' => true

in the model, but that just does what it says, ignoring the validation rules.

I want the 'url' field to be validated ONLY if the 'immagine' checkbox is ticked.

Thank you all for help.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 Unity接入微信SDK 无法开启摄像头
    • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
    • ¥20 cad图纸,chx-3六轴码垛机器人
    • ¥15 移动摄像头专网需要解vlan
    • ¥20 access多表提取相同字段数据并合并
    • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
    • ¥20 Java-Oj-桌布的计算
    • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
    • ¥20 有人知道这种图怎么画吗?
    • ¥15 pyqt6如何引用qrc文件加载里面的的资源