Jef*_*ett 6 php currency symfony-forms symfony
Symfony MoneyType字段呈现input type="text"
允许用户在字段中键入他们想要的内容.
如何覆盖此渲染,input type="number"
以便用户只能输入数字字符?
$formBuilder->add("amount", MoneyType::class, [
'currency' => 'USD'
]);
Run Code Online (Sandbox Code Playgroud)
当前输出:
<div><label for="form_amount" class="required">Amount</label>$ <input type="text" id="form_amount" name="form[amount]" required="required" /></div>
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标:
<div><label for="form_amount" class="required">Amount</label>$ <input type="number" id="form_amount" name="form[amount]" required="required" /></div>
Run Code Online (Sandbox Code Playgroud)
我试图简单地覆盖属性类型,但所有这一切都是在最后添加第二个type
属性,这不起作用,因为它显然是无效的HTML.
$formBuilder->add("amount", MoneyType::class, [
'attr' => [
'type' => 'number',
],
'currency' => 'USD'
]);
Run Code Online (Sandbox Code Playgroud)
这是我简单的树枝:
{{ form_start(form) }}
{{ form_widget(form) }}
<input type="submit" />
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)
我也很好奇,为什么这是Money的默认输入类型?我正在考虑扩展或修改课程以适应这一点,但我确信有一些我没有看到的优势.
您可以自定义 MoneyType 的呈现方式。
{% extends 'form_div_layout.html.twig' %}
{% block money_widget %}
{%- set type = type|default('number') -%}
{{ parent() }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
资料来源:
http://symfony.com/doc/current/form/form_customization.html#method-2-inside-a-separate-template https://github.com/symfony/symfony/issues/22937#issuecomment-304609466
归档时间: |
|
查看次数: |
3164 次 |
最近记录: |