diff --git a/wire/modules/Fieldtype/FieldtypeDecimal.module b/wire/modules/Fieldtype/FieldtypeDecimal.module index d1512d62..c808ea62 100644 --- a/wire/modules/Fieldtype/FieldtypeDecimal.module +++ b/wire/modules/Fieldtype/FieldtypeDecimal.module @@ -96,10 +96,7 @@ class FieldtypeDecimal extends Fieldtype { public function getInputfield(Page $page, Field $field) { /** @var InputfieldFloat $inputfield */ $inputfield = $this->wire()->modules->get('InputfieldFloat'); - $precision = (int) $field->get('precision'); - if($field->get('inputType') === 'number' && $precision > 0) { - $inputfield->attr('step', '.' . ($precision > 1 ? str_repeat('0', $precision - 1) : '') . '1'); - } + $inputfield->set('precision', $field->get('precision')); return $inputfield; } diff --git a/wire/modules/Inputfield/InputfieldFloat.module b/wire/modules/Inputfield/InputfieldFloat.module index f7150905..f5416ee9 100644 --- a/wire/modules/Inputfield/InputfieldFloat.module +++ b/wire/modules/Inputfield/InputfieldFloat.module @@ -112,6 +112,10 @@ class InputfieldFloat extends InputfieldInteger { $attributes['value'] = $this->localeConvertValue($value); } } + $precision = (int) $this->precision; + if($precision > 0 && (empty($attributes['step']) || $attributes['step'] === 'any')) { + $attributes['step'] = '.' . ($precision > 1 ? str_repeat('0', $precision - 1) : '') . '1'; + } } return parent::getAttributesString($attributes); }