protected function _getInputProperties($values, $fieldNamePostfix, $idPrefix) { $ret = parent::_getInputProperties($values, $fieldNamePostfix, $idPrefix); if ($this->getMaxValue()) { $ret['max'] = $this->getMaxValue(); } if ($this->getMinValue()) { $ret['min'] = $this->getMinValue(); } if ($this->getAllowNegative() === false) { if (!isset($ret['min']) || $ret['min'] > 0) { $ret['min'] = 0; } } if ($this->getAllowDecimals() === false) { $ret['step'] = '1'; } else { //browser support for type number with decimals is broken, don't use it $ret['type'] = 'text'; //$ret['step'] = 'any'; unset($ret['max']); unset($ret['min']); $ret['pattern'] = '\\d*(' . preg_quote($this->getDecimalSeparator()) . '\\d*)?'; //instead of type=number; will however NOT show number keyboard on iPad } return $ret; }