Symfony -所需标签上有星号,ChoiceType字段上有漏洞

9fkzdhlc  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(153)

在我的项目Symfony 4中,我想在那些必须填写的标签旁边加上星号。
根据道克'的说法,有几种方法可以做到这一点:wwwhttps://symfony.com/doc/4.0/form/form_customization.html#adding-a-required-asterisk-to-field-labels
但CSS方法更简单。
在我的CSS文件中,我添加了以下代码:

label.required:after {
  content: " *";
  color: red;
  font-weight: bold;
}

它对细节起作用。在窗体中,当我有一个ChoiceType字段时,星号不会出现在主标签上,而是出现在所有可能的选择上。

使用此HTML呈现:

<div class="col-2">
    <fieldset class="form-group">
        <legend class="col-form-label required">Ajouter/Supprimer</legend>
        <div id="role_choix">
            <div class="form-check">
                <input type="radio" id="role_choix_0" name="role[choix]" required="required" class="form-check-input" value="ajouter">
                <label class="form-check-label required" for="role_choix_0">Ajouter</label>
            </div>
            <div class="form-check">
                <input type="radio" id="role_choix_1" name="role[choix]" required="required" class="form-check-input" value="supprimer">
                <label class="form-check-label required" for="role_choix_1">Supprimer</label>
            </div>
        </div>
    </fieldset>
</div>

这是我的表单类型:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('choix', ChoiceType::class, [
                'label' => 'Ajouter/Supprimer',
                'choices' => [
                    'Ajouter' => 'ajouter',
                    'Supprimer' => 'supprimer',
                ],
                'multiple' => false,
                'expanded' => true,
            ])
            ->add('role', ChoiceType::class, [
                'label' => "Ajouter un rôle à cet utilisateur",
                'choices' => [
                    'Admin' => 'admin',
                    'Direction' => 'direction',
                    'RH' => 'rh',
                ]
            ])
        ;
    }

还有我的小枝:

{{form_start(form)}}
    <div class="row items-align-center">
        <div class="col-md-2">{{form_row(form.choix)}}</div>
        <div class="col-md-4">{{form_row(form.role)}}</div>
    </div>

    <button type="submit" class="btn btn-primary">Enregistrer</button>
    {{form_end(form)}}

所以bug只在单选按钮上
有人能帮帮我吗?

1dkrff03

1dkrff031#

我知道这是一个很老的问题,但我发现这个解决方案对我很有效:

label.required:not(.form-check-label):after {
    content: "\2000*";
    color: red;
}
vmjh9lq9

vmjh9lq92#

你在标签上设置了css属性,这就起作用了。你想让radio把它放在图例上。你必须修改css选择器。radio组和select标签共享一个class属性吗?

相关问题