Wie kann ich das format von einer Ext.form.NumberField Wert, wenn ein Formular übermittelt?
Habe ich erweiterte Ext.form.Numberfield zu zeigen Tausende Separatoren und zeigt immer zwei Dezimalstellen:
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 auf dem Formular Einreichen, wird der Wert gesendet, in der POST gehören die Kommas, zwingt mich zu analysieren als einen string auf der server-Seite. Gibt es eine Möglichkeit zum senden der raw-Wert anstelle dieses Besondere Komma-formatierte Wert?
Anstatt das senden dieser Parameter:
referenceSales 10,000,000.00
salesGoal 11,000,000.00
Will ich senden diese:
referenceSales 10000000.00
salesGoal 11000000.00
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wissen Sie natürlich NumberField TextField erweitert, so gibt es keine raw Wert. (wysiwyg) ich schlage vor, mit einem regulären Ausdruck auf die Vorlage.