MasterGerold
@MasterGerold

Как сделать чтобы один из checkbox был обязательным Yii2?

Доброго времени суток! У меня есть 5 полей с типом checkbox. Как мне в Yii2 сделать что бы если хоть одно из них было заполнено то валидация успешна, а иначе сказать что выберите хоть один checkbox. Заранее благодарен!
  • Вопрос задан
  • 1049 просмотров
Решения вопроса 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
www.yiiframework.com/doc-2.0/yii-validators-valida...
[['check1','check2','check3'],'required','when'=>function ($model) {
    return ($model->check1 == null and $model->check2 == null and $model->check3 == null);
}, 'message'=>'чудак, чекни хоть что-нибудь']
Ответ написан
@Don_Zepedro
вот так будет и на сервере и на клиенте все работать.
[['check1','check2'],'required','requiredValue'=>1, 'when' => function ($model) {
                return ($model->check1== null and $model->check2== null);
            }, 'whenClient' => "function (attribute, value) {
                    return ($('#formname-check1').is(':checked') == false && $('#formname-check2').is(':checked')==false);
                }",'message'=>'Выберите хотя бы одну категорию'],
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AnneSmith
самая ленивая
писать жаваскрипт валидации: проверять значения всех чебксов и если все не чекд, то показывать сообщение об ошибке

вряд ди это имеет отношение к уии
Ответ написан
@melnikov_m
Поменять chechbox на radio и сделать его обязательным
$form->field($model, 'radioAttribute')
    ->radioList([
        '1' => 'Первый',
        '2' => 'Второй',
        '3' => 'Третий'
    ]);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы