我正在使用ExtJs NumberField。好消息是它验证只输入了数字。 但我也想要一个连字符。我怎么能去编辑javascript
var <portlet:namespace/>issueNoField = new Ext.form.NumberField({ //This takes only numbers
fieldLabel: 'Issue No',
width: 120,
displayField: 'Enter no',
valueField:'IssNo'
});
答案 0 :(得分:8)
var <portlet:namespace/>issueNoField = new Ext.form.TextField({ //This takes only numbers
fieldLabel: 'Issue No',
width: 120,
regex: /[1-9-]*/
});
答案 1 :(得分:2)
使用“baseChars”选项。
var <portlet:namespace/>issueNoField = new Ext.form.NumberField({ //This takes only numbers
fieldLabel: 'Issue No',
width: 120,
displayField: 'Enter no',
valueField:'IssNo'
baseChars: "0123456789-"
});
答案 2 :(得分:1)
答案 3 :(得分:0)
连字符是否仅仅是传统的,如美国邮政编码(99999-9999)?在这种情况下,您应该只接受数字输入,在到达该位置时插入连字符,并忽略任何非数字字符。
如果连字符很重要,那么“12-345”和“123-45”是不同的输入,那么您正在阅读文本而不是数字。但是,这将是一个非常不友好的系统。
答案 4 :(得分:0)
Regex属性从未对我有用,我使用下面的代码:
maskRe: /[1-9-]/,
答案 5 :(得分:0)
{
xtype: 'textfield',
mask: '(999) 999-9999'
}
我在这里提出的建议是我们使用text field
并为其设置一个掩码,以仅捕获欲望格式的数值。
您可以根据需要进行掩饰。
例如:
'9999999999'
'999-999-9999'
More info这将以您想要的格式提供电话号码
答案 6 :(得分:0)
只需将您的号码字段的allowExponential
配置设为false即可。默认情况下,它为真,并将'e+-'
和decimalSeparator
添加为有效字符。
这是真的。来源检查来源。