禁用 ExtJS 数字字段中的特殊字符
Posted
技术标签:
【中文标题】禁用 ExtJS 数字字段中的特殊字符【英文标题】:Disabling special characters in ExtJS numberfield 【发布时间】:2013-03-06 15:43:15 【问题描述】:我在 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 中仍然存在。有谁知道这可能是什么原因?
【问题讨论】:
【参考方案1】:在 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
],
...
);
【讨论】:
以上是关于禁用 ExtJS 数字字段中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章