2016-03-22 2 views
1

Я новичок в grails, у меня есть поле ag для ввода цены, проблема в том, что пользователь может ввести число с запятой, например, если пользователь вводит 4,23, он будет обрабатывается как 423. Как я могу заставить пользователя ввести точку вместо запятой? Или есть способ конвертировать запятую во входном номере в точку?Усилить десятичную точку в g: поле

Это мой Grails тег:

<g:field type="number decimal" min="0" maxFractionDigits="2" roundingMode="HALF_DOWN" name="price" value="${fieldValue(bean: productoProveedorInstance, field: 'price')}" required=""/> 

Любое предложение будет полезно

+0

Некоторые страны фактически используют запятые вместо десятичных точек для чисел. однако, см. это http://stackoverflow.com/questions/6178332 – aldrin

ответ

1

Использование g:formatNumber вместо:

<g:formatNumber number="${myNumber}" format="\\$###.##0" /> 

... или использовать атрибут шаблон для г: поле. Here вы можете найти пример для формата времени.

... или изменить coma для dot в выбранном поле, используя javascript.

+1

Я решил использовать атрибут pattern с регулярным выражением: 'pattern =" [0-9] + (\\, [0-9] [0-9 ]?)? "', g: formatNumber не для aplpy ​​для этого случая, thks для советов – fabrik

0

Мне удалось использовать g:formatNumber.

<g:formatNumber number="${myNumber}" maxFractionDigits="10" locale="US" /> 

Язык США, заставляет gsp использовать десятичную точку. Тем не менее, без maxFractionDigits, он показывает целое число.

Смежные вопросы