php - 以 Yii2 形式更改场景

标签 php jquery yii2 yii2-advanced-app

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

我的规则:

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

了解conditional validationwhenClient validator property 。还可以考虑为您的场景命名更多信息,例如按其用途,例如 'on' => 'sign-up''on' => 'login'。当您需要在特定情况下应用某些规则时,场景非常有用,但您需要明确指定此场景。当您实例化模型时

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

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

之后进行任何验证之前

关于php - 以 Yii2 形式更改场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301925/

相关文章:

php - 获得正确的 MAX 结果,但没有在 MySQL 中为留言板获得正确的 COUNT 值

php - 从数字数组生成字符串范围(1-10、13、16、17-25.. 等)的算法

javascript - 生成按钮时无效的正则表达式标记错误

jquery - 如何正确运行我自己的 jQuery 函数?

php - 如何为此 MySQL 查询创建 ActiveRecord 查询?

php - 在 Yii2 中集成 paytm

命名空间不适用于 Codeception (Yii2)

php - 如何在codeigniter中将查询结果作为一个数组返回

php - 如何让JS函数每次调用都从数据库中获取数据?

php - 像 wordpress 缩略图一样在 div 上居中图像