2 Stimmen

Wie kann ich das Format eines Ext.form.NumberField-Wertes beim Absenden eines Formulars steuern?

Ich habe Ext.form.Numberfield so erweitert, dass es Tausendertrennzeichen anzeigt und immer zwei Nachkommastellen anzeigt:

Ext.override(Ext.form.NumberField, {
    baseChars: "0123456789,",
    setValue: function(v){
        v = typeof v == 'number' ? v : String(v).replace(this.decimalSeparator, ".").replace(/,/g, "");
        //v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator);
        v = isNaN(v) ? '' : Ext.util.Format.number(this.fixPrecision(String(v)), "0,000,000.00");
            this.setRawValue(v);
        return Ext.form.NumberField.superclass.setValue.call(this, v);
    },
    fixPrecision: function(value){
        var nan = isNaN(value);
        if (!this.allowDecimals || this.decimalPrecision == -1 || nan || !value) {
            return nan ? '' : value;
        }
        return parseFloat(value).toFixed(this.decimalPrecision);
    },
    validateValue: function(value){
        if (!Ext.form.NumberField.superclass.validateValue.call(this, value)) {
            return false;
        }
        if (value.length < 1) { // if it's blank and textfield didn't flag it then it's valid
            return true;
        }
        value = String(value).replace(this.decimalSeparator, ".").replace(/,/g, "");
        if (isNaN(value)) {
            this.markInvalid(String.format(this.nanText, value));
            return false;
        }
        var num = this.parseValue(value);
        if (num < this.minValue) {
            this.markInvalid(String.format(this.minText, this.minValue));
            return false;
        }
        if (num > this.maxValue) {
            this.markInvalid(String.format(this.maxText, this.maxValue));
            return false;
        }
        return true;
    },
    parseValue: function(value){
        value = parseFloat(String(value).replace(this.decimalSeparator, ".").replace(/,/g, ""));
        return isNaN(value) ? '' : value;
    }
});

Das Problem ist, dass bei der Übermittlung des Formulars der in POST gesendete Wert die Kommas enthält und mich zwingt, ihn serverseitig als String zu analysieren. Gibt es eine Möglichkeit, den rohen Zahlenwert anstelle dieses speziellen komma-formatierten Wertes zu senden?

Anstatt diese Parameter zu senden:

referenceSales  10,000,000.00
salesGoal           11,000,000.00

Ich möchte sie versenden:

referenceSales  10000000.00
salesGoal        11000000.00

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X