如何在 ExtJS 的文本字段中允许最多 3 位小数
How to allow upto 3 decimal places only in textfield in ExtJS
对于文本字段,我只需要允许它保留最多 3 位小数。
允许输入:123、123.1、123.34、123.458,但不允许输入 123.4563。
我试了那么多文章,都只找到小数点后两位。
我不知道你为什么要使用文本字段作为数字字段。无论如何,这里是 fiddle 文本字段和数字字段的代码,小数精度为 3。
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.create('Ext.form.Panel', {
title: "Form Panel",
width: 300,
renderTo: Ext.getBody(),
layout: 'form',
items: [{
xtype: 'numberfield',
name: 'bottles',
fieldLabel: 'Number Field',
decimalPrecision: 3 // This will allow only 3 decimal places..
}, {
xtype: 'textfield',
name: 'name',
fieldLabel: 'Text Field',
maskRe: /[0-9.-]/,
//regex: /^-?[0-9]*(\.[0-9]{1,3})?$/, // Without error message
validator: function (v) { // With error Message
return /^-?[0-9]*(\.[0-9]{1,3})?$/.test(v) ? true : 'Max. decimal precision is 3';
},
}],
buttons: [{
text: "Show Form Values",
handler: function() {
console.log(this.up('form').getValues());
}
}]
});
}
});
对于文本字段,我只需要允许它保留最多 3 位小数。
允许输入:123、123.1、123.34、123.458,但不允许输入 123.4563。
我试了那么多文章,都只找到小数点后两位。
我不知道你为什么要使用文本字段作为数字字段。无论如何,这里是 fiddle 文本字段和数字字段的代码,小数精度为 3。
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.create('Ext.form.Panel', {
title: "Form Panel",
width: 300,
renderTo: Ext.getBody(),
layout: 'form',
items: [{
xtype: 'numberfield',
name: 'bottles',
fieldLabel: 'Number Field',
decimalPrecision: 3 // This will allow only 3 decimal places..
}, {
xtype: 'textfield',
name: 'name',
fieldLabel: 'Text Field',
maskRe: /[0-9.-]/,
//regex: /^-?[0-9]*(\.[0-9]{1,3})?$/, // Without error message
validator: function (v) { // With error Message
return /^-?[0-9]*(\.[0-9]{1,3})?$/.test(v) ? true : 'Max. decimal precision is 3';
},
}],
buttons: [{
text: "Show Form Values",
handler: function() {
console.log(this.up('form').getValues());
}
}]
});
}
});