Я работаю с Symfony 3.4, и у меня возникает проблема с полем формы NumberType, которое отображает текстовый ввод:
ElementArrivageType.php:
->add('prixUnit', NumberType::class, array(
'scale' => 3,
'attr' => array(
"min" => 0,
"scale" => 3,
"step" => 0.001,
"placeholder" => "0.000",
)
))
Twig:
{{ form_widget(form.prixUnit, {'attr': {'class': 'form-control'}}) }}
Результат F12:
<input type="text" id="appbundle_arrivage_elementArrivages_2_prixUnit" name="appbundle_arrivage[elementArrivages][2][prixUnit]" required="required" min="0" scale="3" step="0.001" placeholder="0.000" class="form-control prixUnit" value="500.011">
При документировании я нашел решение, которое не работает для меня:
Twig:
{% block number_widget %}
<div class="number_widget">
{% set type = type|default('number') %}
{{ block('form_widget_simple') }}
</div>
{% endblock %}
{{ form_start(form) }}
{{ form_row(form) }}
{{ form_end(form) }}
Единственное решение, которое я нашел, - это не чистое решение:
//forcing type when loading DOM:
$('#appbundle_arrivage_elementArrivages_2_prixUnit').prop('type', 'number');
У кого-нибудь есть чистое решение?