Symfony 3.4: применить маску к полю MoneyType - PullRequest
0 голосов
/ 14 мая 2018

Я работаю с Symfony 3.4 и пытаюсь применить маску для моего MoneyType |Поле NumberType,

Цель маски - действовать спереди, чтобы сделать:

1) Форматировать число (обязательно):

12000.5 => 12 000.5

1234567.2 => 1 234 567.2

2) Отключить нечисловое поле (опционально):

Когда пользователь пытается нажать символ, ввод никогда не меняется.

Для этого я пытаюсьработать с библиотеками JQuery, но при отправке формы возникает проблема, бэкэнд считает, что ввод не является числом, поэтому $ 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",

  )
))

Twig:

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

Я ищу чистое решение Symfony для форматирования моего поля без проблем в бэкэнде.

1 Ответ

0 голосов
/ 15 мая 2018

Попробуйте этот плагин jquery , вот пример .С помощью этого плагина вы можете выбрать разделитель с десятичной опцией, по умолчанию это точка ("."), Но вы можете изменить его на пробел ("").

Также можно настроить с помощью атрибутов

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

Также есть несколько советов, таких как:

.maskMoney ('unmasked') возвращает значение с плавающей запятой (например: 'R $ 1,234,56 '=> 1234,56) .PS: Если у вас есть только одно поле ввода, вы должны использовать этот способ .maskMoney ('unmasked') [0], так как он всегда будет возвращать массив.

Надеюсь, это поможет!

...