2017-09-04 46 views
0

我只是试图限制用户输入1个6。所以,我的代码之间的一个数字是:maskRe ExtJS的6.0.2

{ 
     xtype   : 'textfield', 
     id    : 'NUMBER', 
     width   : '100%', 
     fieldLabel  : "NUMBER", 
     dataIndex  : 'NUMBER', 
     maxLength  : 1, 
     value   : 0, 
     regex   : /[0-6\/]/, 
     maskRe   : /[0-6]/, 
     enforceMaxLength : true, 
     readOnly   : true, 
     mandatory  : true, 
} 

出于某种原因,我可以输入从1到9的任何号码(虽然我得到无效的表单错误)。另外,由于起始值为0,因为某种原因,我可以在他之前添加一个数字,例如允许我输入“90”。

所以我最后的问题是,“为什么我的”maskRe“工作正常”?

+1

你为什么不使用min max? – bluehipy

回答

1

您的代码,无readOnly:true,正在为我的小提琴工作;所以我不确定为什么它不适合你。

You can find the fiddle here;请注意,我仅在最近的Chrome中进行了测试。

+0

你是对的小提琴是正确的,对不起,但我有控制器上的另一个功能忽略我的领域属性。感谢您的帮助。 – Chazz1

1

您正在寻找:

{ 
    xtype: 'numberfield', 
    label: 'Age', 
    minValue: 1, 
    maxValue: 6, 
    name: 'age' 
} 

关于maskRe,他们说:

maskRe:正则表达式 输入掩码的正则表达式将被用于过滤击键> (字符正在键入)不匹配。注意:它不会过滤输入中已有的字符。

所以maskRe// [1-6] /只会让用户输入1到6个字符,但不会使已经存在的0无效,并且不会强加长度限制。

+0

为了说明问题,我避免使用“数字字段”,因为我使用它来实现特殊行为。但即使我使用它,由于某些原因,我仍然可以输入7,8和9. – Chazz1

+1

描述特殊行为,也许我可以帮助你完成它:)也可以在数字字段类源中查看他们如何执行限制;) – bluehipy

+0

我有2个“箭头”(“上”和“下”),这使我可以增加/减少数值。这些箭头只允许我将数字增加到6,但我仍然可以将其编辑为7. – Chazz1