以Yii2格式更改方案

时间:2016-03-30 07:08:09

标签: php jquery yii2 yii2-advanced-app

我想通过jQuery更改视图页面中的场景。 我的表单中有一个复选框,我希望在复选框中需要输入框。

我的规则:

public function rules() {
        return [
               .
               .
               .
               ['pass' , 'required', 'on'=> 'checked']
        ]
}

我的观看页面:

<?=$form->field($model, 'check')->checkbox()?>
<?=$form->field($model, 'Pass')->textInput(['maxlength' => 20])?>

1 个答案:

答案 0 :(得分:4)

尝试像这样设置规则:

public function rules() {
    $checkBoxID = Html::getInputId($this, 'check');

    return [
        /* other rules */
        ['pass' , 'required', 
            'when' => function($model) {
                return $model->check;
            },
            'whenClient'=> "function(attribute, value){
                return $('#{$checkBoxID}').prop('checked');
            }",
            'on' => 'checked'
        ],
    ];
}

了解conditional validationwhenClient validator property。还要考虑为您提供更具信息性的方案,例如:按其目的,如'on' => 'sign-up''on' => 'login'。当您需要在特定情况下应用某些规则时,方案很有用,但您需要明确指定此方案。在实例化模型时

$model = new MyModel();
$model->scenario = 'sign-up';

并将其传递到视图中,或者在$model->load($data)

之后进行任何验证之前