我正在处理文本字段并使用 enforceMaxLength 配置限制最大长度。
所以,作为一个用例 - 我限制用户只输入14个字符。但是,一旦使用this.setRawValue(Ext.util.Format.currency(this.getValue()));
因此,在设置值之后,文本字段的总长度变为18,并且它始终给出最大长度违规错误消息。
有没有办法避免错误信息,但仍然限制用户只输入14个字符?我正在尝试清除maxLength文本,但我无法找到方法或解决方法。
任何指针都会有所帮助。
答案 0 :(得分:1)
您可以覆盖validator
的{{1}}功能,并在应用格式时致电textfield
。
这是一个概念证明,您将需要更新正则表达式。
现在,如果你可以制作一个好的正则表达式并让它在一行中验证,你总是可以使用textfield.validate()
。只需确保在设置货币时调用VType
,因为使用util格式更改文本不会导致验证功能运行。
<强>更新强>
所以我搜索了高低不同的内置方式,但是这一点和我能得到的一样好。
我们要做的是抓住textfield.validate()
上的keypress
事件,并测试我们有多少个字符。如果我们超过阈值(在这种情况下为14),我们只需textfield
,其中包含当前输入的子字符串。
在这个小提琴中,我将.setValue()
分解为自己的变量,因此我可以轻松地执行textfield
。如果您正在使用MVC,您只需在控制器中监听.on()
事件。
另请注意,没有keypress
或enforceMaxLength
配置,我添加了maxLength
配置。