_onKeypress(e) {
        if (this.compositioning) {
            return;
        }
        if (this.formulaMode) {
            // Accept the backspace, delete, arrow, home and end keys
            if (this._acceptNonPrintableKeysInFormulaMode()) {
                return;
            }

            //TODO Prevent keys to be entered on the left-hand side of the '=' sign?...Or just let the user see what they are wrongly doing?
            if (this.settings.formulaChars.test(this.eventKey)) { // Accept the custom decimal character too
                return; // Accept the key in the formula (and do not accept the '=' character here again)
            } else {
                e.preventDefault(); // Reject the key
            }

            return;
        }

        if (this.eventKey === AutoNumericEnum.keyName.Insert) {
            return;
        }

        const processed = this.processed;
        this._updateInternalProperties(e);

        if (this._processNonPrintableKeysAndShortcuts(e)) {
            return;
        }

        if (processed) {
            e.preventDefault();

            return;
        }

        const isCharacterInsertionAllowed = this._processCharacterInsertion();
        if (isCharacterInsertionAllowed) {
            this._formatValue(e);
            const targetValue = AutoNumericHelper.getElementValue(e.target);
            if ((targetValue !== this.lastVal) && this.throwInput) {
                // Throws input event on adding a character
                this._triggerEvent(AutoNumeric.events.native.input, e.target);
                e.preventDefault(); // ...and immediately prevent the browser to add a second character
            } else {
                if ((this.eventKey === this.settings.decimalCharacter || this.eventKey === this.settings.decimalCharacterAlternative) &&
                    (AutoNumericHelper.getElementSelection(e.target).start === AutoNumericHelper.getElementSelection(e.target).end) &&
                    AutoNumericHelper.getElementSelection(e.target).start === targetValue.indexOf(this.settings.decimalCharacter)) {
                    const position = AutoNumericHelper.getElementSelection(e.target).start + 1;
                    AutoNumericHelper.setElementSelection(e.target, position);
                }

                e.preventDefault();
            }

            this.lastVal = AutoNumericHelper.getElementValue(e.target);
            this.throwInput = true;

            this._setValidOrInvalidState(this.rawValue); // Updates the valid state as soon as the number is entered (in the case where the user keeps pressing the number key)

            return;
        }

        e.preventDefault();
    }
Handler for 'keypress' events.
The user is still pressing the key, which will output a character (i.e. '2') continuously until he releases the key.
Note: 'keypress' events are not sent for delete keys like Backspace/Delete.

@param {KeyboardEvent} e