簡體   English   中英

以Yii2格式更改方案

[英]Change scenario in form Yii2

我想通過jQuery更改視圖頁面中的方案。 我的表單中有一個復選框,我希望選中的復選框中需要輸入框。

我的規則:

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

我的查看頁面:

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

嘗試像這樣設置您的規則:

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'
        ],
    ];
}

閱讀有關條件驗證whenClient validateator屬性的信息 還可以考慮給您的場景命名更多信息,例如,按其目的命名,例如'on' => 'sign-up''on' => 'login' 當您需要在某些情況下應用某些規則但需要顯式指定此方案時,方案非常有用。 實例化模型時

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

並將其傳遞到視圖中,或者在$model->load($data)之后進行任何驗證之前

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM