diff --git a/core/modules/system/templates/select.html.twig b/core/modules/system/templates/select.html.twig index 29ec1fe..331c242 100644 --- a/core/modules/system/templates/select.html.twig +++ b/core/modules/system/templates/select.html.twig @@ -46,21 +46,18 @@ {{ options.build(element, choice.option) }} {% else %} {% spaceless %} + {% set selected = false %} {# Cast key to a string. #} - {% set key = "#{key}" %} + {% set key = key ~ "" %} - {# The defined test accommodates cases where element['#value'] is null. #} - {% set empty_choice = element['#value'] is empty and element['#multiple'] is not empty %} {% if element['#value'] is not defined %} {% set selected = false %} {% elseif element['#value'] is not iterable %} - {% set selected = ("#{element['#value']}" is same as(key)) %} - {% elseif element['#value'] is iterable %} - {% set selected = (key in element['#value']) %} - {% elseif empty_choice and key == '_none' %} + {% set selected = ((element['#value'] ~ "") == key) %} + {% elseif key in element['#value'] %} + {% set selected = true %} + {% elseif element['#value'] is empty and element['#multiple'] is not empty and key == '_none' %} {% set selected = true %} - {% else %} - {% set selected = false %} {% endif %} {% endspaceless %}