我有一个数字字段,只需要两个小数点和逗号(如decimalSeparator),在文档中已经用我接下来输入的数据填充了数字字段:
{
xtype: 'numberfield',
margin: '5 0 5 0',
allowDecimals: true,
decimalPrecision: 2,
decimalSeparator: ',',
minValue: 0.01,
step: 0.01
}
当我尝试写'2,2'时,不要让我输入逗号,并且numberfield的精度验证值为3,而不是2。
我也曾尝试更改Ext.field.Number的全局原型,但无法进行以下操作:
Ext.field.Number.prototype.thousandSeparator = '.';
Ext.field.Number.prototype.decimalSeparator = ',';
有人可以帮助我吗?我无法使用文本字段,因为我需要科尔多瓦显示数字键盘。
谢谢!
答案 0 :(得分:0)
现代使用:
使用
Ext.util.Format.thousandSeparator = '.';
Ext.util.Format.decimalSeparator = ',';
并使用“ spinnerfield”代替“ numberfield”
{
xtype: 'spinnerfield',
anchor: '100%',
fieldLabel: 'Numbers',
margin: '5 0 5 0',
// decimalPrecision: 2, /*classic property*/
// decimalSeparator: ',', /*classic property*/
// allowDecimals: true, /*classic property*/
decimals: 2,
// step: 0.01 /*classic property*/
stepValue: 0.01,
minValue: 0.01
}
答案 1 :(得分:0)
好吧,我在sencha上发现了NumberField的问题。 NumberField和SpinnerField格式在移动设备上不起作用,这是因为当移动sencha建立类型为number的输入时,chrome和cordova引擎在逗号支持下不起作用。
因此,如果您需要在cordova引擎上显示数字键盘或需要为移动设备提供数字支持,则必须重写一个类,并放置一些变量,我在这里举个例子,也许@Leandro Fantinel可以摆弄小提琴。 >
Ext.util.Format.thousandSeparator = '.';
Ext.util.Format.decimalSeparator = ',';
Ext.define('jsclient.view.articleCheck.decimalNumber.DecimalEuropeNumber11122', {
extend: 'Ext.field.Number',
alias: 'widget.decimalNumber',
requires: [
'Ext.field.Number'
],
inputType: 'text',
decimals: 2,
listeners: {
initialize: function (_this, eOpts) {
//This attribute make that cordova display a numeric number
_this.element.dom.querySelector("input").setAttribute("inputmode", "numeric");
},
change: function (_this, eOpts, value, oldValue) {
var objRegExp = /^\d+\.\d{0,2}$/;
if (objRegExp.test(oldValue) && !objRegExp.test(value)) {
_this.setValue(oldValue);
}
},
}
});