Страница 1 из 1

Бага в клиентской валидации RadioList

Добавлено: 2019.09.26, 10:17
Йож
Добрый день!

Заметил багу.

Есть RadioList и если один из пунктов disabled - то клиентская валидация совсем не работает.
Хотя для выбора остаются другие пункты.

Прилагаю пример кода:

Код: Выделить всё

<?php echo $form->field($orderForm, 'payment_type_id')->radioList(\yii\helpers\ArrayHelper::map($paymentTypes, 'id', 'title'), [
                                'item' => function ($index, $label, $name, $checked, $value) use ($paymentTypes) {
                                    $disabled = $paymentTypes[$index]->status == 0 ? true : false;
                                    return "<label>" . Html::radio($name, $checked, ['value' => $value, 'disabled' => $disabled]) . $label .  "</label>";
                                }
                            ])->label(false); ?>
Скрин: https://prnt.sc/pb4u3y

Re: Бага в клиентской валидации RadioList

Добавлено: 2019.09.26, 10:41
Йож
Пока решил костылем (запрещаю нажатие на пункт радиолиста):

Код: Выделить всё

<?php echo $form->field($orderForm, 'payment_type_id')->radioList(\yii\helpers\ArrayHelper::map($paymentTypes, 'id', 'title'), [
                                'item' => function ($index, $label, $name, $checked, $value) use ($paymentTypes) {
                                    $disabledClass = $paymentTypes[$index]->status == 0 ? "label-disabled" : '';
                                    return "<label class=\"{$disabledClass}\">" . Html::radio($name, $checked, ['value' => $value]) . $label .  "</label>";
                                }
                            ])->label(false); ?>

Код: Выделить всё

$(document).on('click', '.label-disabled', function (e) {
        e.preventDefault();
    });

Re: Бага в клиентской валидации RadioList

Добавлено: 2019.09.30, 11:13
samdark
Закидывайте в официальный трекер на github.

Re: Бага в клиентской валидации RadioList

Добавлено: 2019.09.30, 14:05
Йож