如何防止在 extjs 数字字段中输入负值
How to prevent typing negative values in extjs number field
这里我使用的是 ExtJS 5.1.2。
我必须防止在数字字段中输入负值。
通过为 "minValue" 属性 'Down' 使用“0”值,键和鼠标滚轮不允许负值。
但用户可以在字段中输入负值。
是否有任何配置可以防止在数字字段中输入负值?
示例代码:
Ext.define('MyApp.view.field.MyNUmber', {
extend:'Ext.form.field.Number',
xtype: 'myNumberField',
fieldLabel: 'My NUmmber',
allowBlank: true,
allowDecimals: true,
decimalPrecision: 2,
minValue: 0,
step: 0.25
});
不确定这是否是您要查找的内容,但您可以在数字字段上设置侦听器并在输入的值小于 0 的情况下更改该字段的值:
listeners: {
change: function(field, value) {
value = parseInt(value, 10);
if (value < 0) {
field.setValue(0);
}
}
}
过去,我用过allowExponential: false
... example。我意识到这并不是真正的目的(它可能是一个错误),但它似乎可以解决问题......请注意,如果你起飞 minValue: 0
,那么你可以输入负数。
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create('Ext.form.Panel', {
title: 'On The Wall',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'numberfield',
anchor: '100%',
name: 'bottles',
fieldLabel: 'Bottles of Beer',
value: 99,
maxValue: 99,
minValue: 0,
allowExponential: false,
allowDecimals: true
}],
buttons: [{
text: 'Take one down, pass it around',
handler: function() {
this.up('form').down('[name=bottles]').spinDown();
}
}]
});
}
});
这里我使用的是 ExtJS 5.1.2。
我必须防止在数字字段中输入负值。 通过为 "minValue" 属性 'Down' 使用“0”值,键和鼠标滚轮不允许负值。
但用户可以在字段中输入负值。
是否有任何配置可以防止在数字字段中输入负值?
示例代码:
Ext.define('MyApp.view.field.MyNUmber', {
extend:'Ext.form.field.Number',
xtype: 'myNumberField',
fieldLabel: 'My NUmmber',
allowBlank: true,
allowDecimals: true,
decimalPrecision: 2,
minValue: 0,
step: 0.25
});
不确定这是否是您要查找的内容,但您可以在数字字段上设置侦听器并在输入的值小于 0 的情况下更改该字段的值:
listeners: {
change: function(field, value) {
value = parseInt(value, 10);
if (value < 0) {
field.setValue(0);
}
}
}
过去,我用过allowExponential: false
... example。我意识到这并不是真正的目的(它可能是一个错误),但它似乎可以解决问题......请注意,如果你起飞 minValue: 0
,那么你可以输入负数。
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create('Ext.form.Panel', {
title: 'On The Wall',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'numberfield',
anchor: '100%',
name: 'bottles',
fieldLabel: 'Bottles of Beer',
value: 99,
maxValue: 99,
minValue: 0,
allowExponential: false,
allowDecimals: true
}],
buttons: [{
text: 'Take one down, pass it around',
handler: function() {
this.up('form').down('[name=bottles]').spinDown();
}
}]
});
}
});