【问题标题】:Symfony ChoiceType to enable or disable TextTypeSymfony ChoiceType 启用或禁用 TextType
【发布时间】:2020-11-06 08:42:56
【问题描述】:

我的 Symfony 4 应用程序中有一个表单。我有 2 个字段,一个 ChoiceType 和一个 TextType。如果在 ChoiceType 中选择了“其他”选项,是否可以启用 TextType,如果选择了其他选项,是否可以禁用?

这是我目前的表格:

$builder
    ->add('colour', ChoiceType::class, [
        'choices' => [
            'Red' => 0,
            'Green' => 1,
            'Blue' => 2,
            'Other' => 3
        ],
        'mapped' => false,
        'label' => 'What is your preferred colour?',
        'required' => false
    ])
    ->add('colour_other', TextType::class, [
        'mapped' => false,
        'label' => 'Please specify:',
        'required' => false,
        'disabled' => true
    ])
;

我想使用 Symfony 表单构建器来实现这一点,或者我需要编写一些自定义 javascript?

【问题讨论】:

标签: symfony


【解决方案1】:

在这种情况下,您需要使用 JavaScript 执行此操作。 为 colour 选择创建一个 on change 侦听器。如果选择了应该禁用 colour_other 字段的选项,则禁用输入类型文本字段。

可能的代码如下所示(未经测试):

$('select[name="colour"]').on('change', function() {
   if ($(this).val() == 3)  {   // If option 'Other' was selected
       $('input[name="colour_other"]').prop('disabled', false);
   } else {
       $('input[name="colour_other"]').prop('disabled', true);   // Change back if user selected another option later
   }
});

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多