ExtJs NumberField

时间:2011-02-10 12:25:26

标签: javascript extjs input numbers

我正在使用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'
         });

7 个答案:

答案 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)

尝试Fiddle

最好使用textfield并将maskRe属性添加为

maskRe: /^[0-9 -]$/

答案 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添加为有效字符。

这是真的。来源检查来源。