Symfony 3.4:将掩码应用于MoneyType字段

时间:2018-05-14 14:47:35

标签: symfony symfony-forms symfony-3.4

我正在使用Symfony 3.4,我正在尝试为我的MoneyType应用掩码NumberType字段,

面具的目的是在前面行动:

1)格式化数字(必填):

12000.5 => 12 000.5

1234567.2 => 1 234 567.2

2)禁用非数字字段(可选):

当用户尝试点击某个字符时,输入永远不会改变。

为此,我尝试使用JQuery Libraries,但在提交表单时遇到问题,后端认为输入不是数字,因此不满足$ form-> isValid()

FormType:

->add('prixUnit', NumberType::class, array(
  "grouping" => true, //works only on show mode not on newAction
  'attr' => array(
    "class" => "number"
    "min" => 0,
    "step" => 0.100,
    "placeholder" => "0.000",

  )
))

嫩枝:

$('.number').maskSomeLibrariesJquery();

我正在寻找一个干净的Symfony解决方案来格式化我的字段而不会在后端出现问题。

1 个答案:

答案 0 :(得分:0)

尝试this jquery plugin,这是example。使用此插件,您可以选择带小数选项的分隔符,默认为点(“。”),但您可以按空格(“”)更改它。

也可以通过属性配置

<input type="text" data-symbol="R$ " data-thousands="." data-decimal="," />

还有一些提示,如:

  

.maskMoney('unmasked') 返回一个浮动值(例如:'R $ 1.234,56'=&gt;   1234.56)即可。 PS:如果你只有一个输入字段,你应该使用这种方式.maskMoney('unmasked')[0],因为它总会返回一个数组。

希望它有所帮助!