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 に答える