如何防止在extjs数字字段中键入负值

时间:2016-01-28 17:24:50

标签: extjs extjs5

这里我使用的是ExtJS 5.1.2。

我必须阻止在数字字段中输入负值。 通过对“minValue”属性使用“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
});

2 个答案:

答案 0 :(得分:1)

不确定这是否是您正在寻找的,但您可以在数字字段上设置一个监听器,并在输入的值小于0时更改字段的值:

 listeners: {
     change: function(field, value) {
         value = parseInt(value, 10);
         if (value < 0) {
             field.setValue(0);
         }
     }
 }

Sample fiddle here

答案 1 :(得分:1)

过去,我使用过allowExponential: false ... example。我意识到它并不是真正意义上的(它可能是一个错误),但它似乎可以解决问题......请注意,如果你取消function in_array_r($value, &$array) { foreach ($array as &$v) { if (is_array($v) && in_array_r($value, $v) || $v === $value) return true; } return false; } $myarray = [ 1, 2, 3, [4, 5, 6, ['title' => 'Something (12) Pieces'], 7, 8]]; var_dump(in_array_r('Something (12) Pieces', $myarray)); ,那么你可以输入负数。

minValue: 0