From d1b3570e47f9c966a8c0f4a955ee9800a53414ef Mon Sep 17 00:00:00 2001 From: mertsincan Date: Sun, 20 Sep 2020 23:27:44 +0300 Subject: [PATCH] Fixed #1585 - InputNumber feature - allow negative values --- src/components/inputnumber/InputNumber.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/inputnumber/InputNumber.js b/src/components/inputnumber/InputNumber.js index d510a3acea..a47ae75015 100644 --- a/src/components/inputnumber/InputNumber.js +++ b/src/components/inputnumber/InputNumber.js @@ -476,6 +476,10 @@ export class InputNumber extends Component { } } + allowMinusSign() { + return this.props.min === null || this.props.min < 0; + } + isMinusSign(char) { if (this._minusSign.test(char)) { this._minusSign.lastIndex = 0; @@ -495,6 +499,12 @@ export class InputNumber extends Component { } insert(event, text, sign = { isDecimalSign: false, isMinusSign: false }) { + const minusCharIndexOnText = text.search(this._minusSign); + this._minusSign.lastIndex = 0; + if (!this.allowMinusSign() && minusCharIndexOnText !== -1) { + return; + } + const selectionStart = this.inputEl.selectionStart; const selectionEnd = this.inputEl.selectionEnd; let inputValue = this.inputEl.value.trim();