首页 > 解决方案 > Symfony - 如果选中该复选框,则禁用必填字段

问题描述

我有一个关于 Symfony 的表格。我的表单由文本输入和复选框组成。

如果用户选中该框,则输入文本被禁用(我使用 javascript)。但是,如果用户不选中该框,则他必须填写输入文本。如果他勾选方框,他不必这样做。

这是我的表格:

$formBuilder
            ->add('text',      TextType::class,array(
            'required' => true,
            'constraints' => array(
                new NotBlank()
            )))
            ->add('box',      CheckboxType::class, array(
                'mapped' => false,
                'label' => 'Box'
            ))

    ;

如果选中该框,我正在寻找一种禁用文本输入验证的方法。如果选中复选框,如何忽略输入文本验证?

你知道怎么做吗?谢谢!

标签: symfony

解决方案


在这种情况下,您需要自定义约束。您应该使用 javascript 将字段标记为非必填项并显示星号 (*) 为必填项。对于后端,您需要创建自定义约束。在此处查看 symfony 文档:https ://symfony.com/doc/current/validation/custom_constraint.html


推荐阅读