merged branch acasademont/patch-1 (PR #7678)
This PR was merged into the master branch.
Discussion
----------
[Form] Remove "value" attribute on empty_value option
Today we faced a very strange issue with the newest Blackberry 10 browser, it was not submitting our forms. Finally we found that in a ```select``` element, if you have a disabled option, it can't have a value or the HTML5 validator will crash and won't submit the form. Of course, setting the ```novalidate``` option for the whole form also solved the issue.
Although I know this must be an issue with the WebKit version the BB10 has, it can easily be solved in symfony with this change. In fact, it does make sense since we already have a disabled option with no value if the ```preferred_choices``` are not empty and a ```separator``` is set
Commits
-------
9e849eb
[Form] Remove "value" attribute on empty_value option
This commit is contained in:
commit
e51c560ad4
@ -69,7 +69,7 @@
|
|||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
|
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
|
||||||
{% if empty_value is not none %}
|
{% if empty_value is not none %}
|
||||||
<option value=""{% if required %} disabled="disabled"{% if value is empty %} selected="selected"{% endif %}{% endif %}>{{ empty_value|trans({}, translation_domain) }}</option>
|
<option {% if required %} disabled="disabled"{% if value is empty %} selected="selected"{% endif %}{% else %} value=""{% endif %}>{{ empty_value|trans({}, translation_domain) }}</option>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if preferred_choices|length > 0 %}
|
{% if preferred_choices|length > 0 %}
|
||||||
{% set options = preferred_choices %}
|
{% set options = preferred_choices %}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<?php echo $view['form']->block($form, 'widget_attributes') ?>
|
<?php echo $view['form']->block($form, 'widget_attributes') ?>
|
||||||
<?php if ($multiple): ?> multiple="multiple"<?php endif ?>
|
<?php if ($multiple): ?> multiple="multiple"<?php endif ?>
|
||||||
>
|
>
|
||||||
<?php if (null !== $empty_value): ?><option value=""<?php if ($required):?> disabled="disabled"<?php if (empty($value) && "0" !== $value): ?> selected="selected"<?php endif ?><?php endif?>><?php echo $view->escape($view['translator']->trans($empty_value, array(), $translation_domain)) ?></option><?php endif; ?>
|
<?php if (null !== $empty_value): ?><option <?php if ($required):?> disabled="disabled"<?php if (empty($value) && "0" !== $value): ?> selected="selected"<?php endif ?><?php else: ?> value=""<?php endif?>><?php echo $view->escape($view['translator']->trans($empty_value, array(), $translation_domain)) ?></option><?php endif; ?>
|
||||||
<?php if (count($preferred_choices) > 0): ?>
|
<?php if (count($preferred_choices) > 0): ?>
|
||||||
<?php echo $view['form']->block($form, 'choice_widget_options', array('choices' => $preferred_choices)) ?>
|
<?php echo $view['form']->block($form, 'choice_widget_options', array('choices' => $preferred_choices)) ?>
|
||||||
<?php if (count($choices) > 0 && null !== $separator): ?>
|
<?php if (count($choices) > 0 && null !== $separator): ?>
|
||||||
|
@ -548,7 +548,7 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
|
|||||||
[@name="name"]
|
[@name="name"]
|
||||||
[@required="required"]
|
[@required="required"]
|
||||||
[
|
[
|
||||||
./option[@value=""][not(@selected)][@disabled][.="[trans]Test&Me[/trans]"]
|
./option[not(@value)][not(@selected)][@disabled][.="[trans]Test&Me[/trans]"]
|
||||||
/following-sibling::option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]
|
/following-sibling::option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]
|
||||||
/following-sibling::option[@value="&b"][not(@selected)][.="[trans]Choice&B[/trans]"]
|
/following-sibling::option[@value="&b"][not(@selected)][.="[trans]Choice&B[/trans]"]
|
||||||
]
|
]
|
||||||
@ -571,7 +571,7 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
|
|||||||
[@name="name"]
|
[@name="name"]
|
||||||
[@required="required"]
|
[@required="required"]
|
||||||
[
|
[
|
||||||
./option[@value=""][not(@selected)][@disabled][.="[trans][/trans]"]
|
./option[not(@value)][not(@selected)][@disabled][.="[trans][/trans]"]
|
||||||
/following-sibling::option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]
|
/following-sibling::option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]
|
||||||
/following-sibling::option[@value="&b"][not(@selected)][.="[trans]Choice&B[/trans]"]
|
/following-sibling::option[@value="&b"][not(@selected)][.="[trans]Choice&B[/trans]"]
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user