1

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

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

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

我试过的:

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 中。有谁知道这可能是什么原因?

4

1 回答 1

0

在 ExtJS 3.4 中有NumberField可以让您防止除数字以外的击键将数据输入到您的字段中。

要使用它:

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        
    }],

...

});
于 2013-03-06T16:21:20.847 回答