我在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中。有没有人知道这可能是什么原因?
答案 0 :(得分: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
}],
...
});