Как добавить атрибут id в поле радио yii2 - PullRequest
0 голосов
/ 07 августа 2020

Я создал радиолист в yii2, как показано ниже. Как установить id для радиолиста, я попробовал вот так:

 <?= $form->field($model, 'question')->radioList(['Y'=>'Yes','N'=>'No'],['id'=>'question'])->label('Any question'); ?>

, но когда я просматриваю источник html, идентификатор отсутствует в радиолисте поле, но в div

<div id="question" role="radiogroup">
<div class="radio">
<label><input type="radio" name="MabaForm[question]" value="Y"> Yes</label> 
</div>
<div class="radio">
<label><input type="radio" name="MabaForm[question]" value="N">No</label>
</div>
</div>

я хочу, чтобы идентификатор в атрибуте ввода радио был таким

<label><input type="radio" name="MabaForm[question]" value="Y" id="question"> Yes</label>

любая помощь? извините за мой англ sh.

1 Ответ

0 голосов
/ 07 августа 2020

Для radioList это непросто, потому что вам нужно обеспечить обратный вызов для всех элементов, и вы не хотите иметь одинаковый идентификатор для каждой опции, потому что идентификаторы должны быть уникальными, например:

<?= $form
    ->field($model, 'question')
    ->radioList(
        ['Y' => 'Yes', 'N' => 'No'],
        ['item' => static function ($index, $label, $name, $checked, $value) use ($model) {
            if ($label === 'Yes') {
                $id = 'id-for-yes';
            } else {
                $id = 'id-for-no';
            }
            return \yii\web\Html::radio(
                $name,
                $checked,
                [
                    'value' => $value,
                    'label' => $label,
                    'id' => $id
                ]
            );
        }]
    )
    ->label('Any question'); ?>

Я не на 100% уверен, что у меня есть все варианты здесь правильно, поэтому сначала проверьте их, но это общая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...