禁用ExtJS numberfield中的特殊字符

禁用ExtJS numberfield中的特殊字符,extjs,validation,extjs3,Extjs,Validation,Extjs3,我在ExtJS中有一个表单,我想在其中放置一个只能接受数字作为输入的字段。我还想禁用其他特殊字符(特别是%符号),因为无论对字段(basechars、regex、maskRe)施加何种限制,这些特殊字符似乎都被视为有效输入 禁用特殊字符的最佳方法是什么 编辑:很抱歉不清楚。我已经在使用numberfield,它确实会阻止字母表中的所有字母,但允许使用一些特殊字符,如%、&、#等 我所尝试的: numfield1 = new Ext.form.NumberField({ f

我在ExtJS中有一个表单,我想在其中放置一个只能接受数字作为输入的字段。我还想禁用其他特殊字符(特别是%符号),因为无论对字段(basechars、regex、maskRe)施加何种限制,这些特殊字符似乎都被视为有效输入

禁用特殊字符的最佳方法是什么

编辑:很抱歉不清楚。我已经在使用numberfield,它确实会阻止字母表中的所有字母,但允许使用一些特殊字符,如%、&、#等

我所尝试的:

numfield1 = new Ext.form.NumberField({
            fieldLabel: 'numfield1',
            name: 'numfield1',
            baseChars: "0123456789"
        });


numfield2 = new Ext.form.NumberField({
            fieldLabel: 'numfield2',
            name: 'numfield2',
            regex: /^[0-9]*/
        });

numfield3 = new Ext.form.NumberField({
            fieldLabel: 'numfield3',
            name: 'numfield3',
            maskRe: /[0-9]/
        });
所有这些仍然允许使用特殊字符,我希望字段只使用数字字符,而不允许使用所有其他特殊字符

更新:我发现它在firefox上的工作原理与我预期的完全一样,但问题仍然存在于chrome和safari中。有人知道这可能是什么原因吗?

在ExtJS 3.4中,有一种方法可以防止数字以外的按键将数据输入字段

要使用它:

Ext.define('myapp.view.MyForm', {
    extend: 'Ext.form.Panel',

    defaultType: 'textfield',

    items: [{
        xtype: 'numberfield',
        fieldLabel: 'Price',
        name: 'price',
        allowBlank: false,
        minValue: 0 //prevents negative numbers        
    }],

...

});