限制在ExtJs文本字段/数字字段中输入的输入

时间:2013-10-31 09:00:55

标签: extjs4

我要求textfield/numberfield存在的地方应该只允许0 to 99999.99之间的值,即5位数和2位小数。

应限制用户使用任何无效的号码。

我对正则表达式不好但会解决我的问题吗? 任何解决此问题的指针都将受到赞赏。

我需要限制用户输入超过5位数的任何值。在5位数后,只能放置一个小数,超过2位

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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: 0,
    maxValue: 99999.99,
    minValue: 0
}],
buttons: [{
    text: 'Take one down, pass it around',
    handler: function() {
        this.up('form').down('[name=bottles]').spinDown();
    }
}]

});
从:http://docs-origin.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.Number

答案 1 :(得分:1)

您需要添加自定义验证类型VTypes

addCustomVtypes : function() {
    var mRegex = /^\d{0,5}(\.\d{0,2})?$/;

    Ext.apply(Ext.form.field.VTypes, {
        mRegex : function(val, field) {
            return ralphaNumHyphen.test(val);
        },
        mRegexText : 'Invalid input. Message here.',
        mRegexMask : /\d{0,5}(\.\d{0,2})?$/i
    });
}

您可以在应用程序启动时调用它。

然后,在文本字段中添加vtype: mRegex