8000 Fixed bug that incorrectly causes the "required" attribute to be omit… · symfony/symfony@f9aa676 · GitHub
[go: up one dir, main page]

Skip to content
< 8000 script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-d044b7c46be3.js" defer="defer">

Commit f9aa676

Browse files
Nick Stemerdinkfabpot
Nick Stemerdink
authored andcommitted
Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute
1 parent bdddf3a commit f9aa676

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767

6868
{% block choice_widget_collapsed %}
6969
{% spaceless %}
70-
{% if required and empty_value is none and not empty_value_in_choices %}
70+
{% if required and empty_value is none and not empty_value_in_choices and not multiple %}
7171
{% set required = false %}
7272
{% endif %}
7373
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>

src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/choice_widget_collapsed.html.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<select
2+
<?php if ($required && $empty_value === null && $empty_value_in_choices === false && $multiple === false):
3+
$required = false;
4+
endif; ?>
25
<?php echo $view['form']->block($form, 'widget_attributes', array(
3-
'required' => $required && (null !== $empty_value || $empty_value_in_choices)
6+
'required' => $required
47
)) ?>
58
<?php if ($multiple): ?> multiple="multiple"<?php endif ?>
69
>

src/Symfony/Component/Form/Tests/AbstractLayoutTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,13 +636,15 @@ public function testMultipleChoice()
636636
{
637637
$form = $this->factory->createNamed('name', 'choice', array('&a'), array(
638638
'choices' => array('&a' => 'Choice&A', '&b' => 'Choice&B'),
639+
'required' => true,
639640
'multiple' => true,
640641
'expanded' => false,
641642
));
642643

643644
$this->assertWidgetMatchesXpath($form->createView(), array(),
644645
'/select
645646
[@name="name[]"]
647+
[@required="required"]
646648
[@multiple="multiple"]
647649
[
648650
./option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]

0 commit comments

Comments
 (0)
0