Javascript EXT JS:如何在运行时将MaxLength强制为false?
我正在处理文本字段,并使用enforceMaxLength配置限制最大长度 因此,作为一个用例,我限制用户只输入14个字符。但是,一旦使用Javascript EXT JS:如何在运行时将MaxLength强制为false?,javascript,html,extjs,extjs4,Javascript,Html,Extjs,Extjs4,我正在处理文本字段,并使用enforceMaxLength配置限制最大长度 因此,作为一个用例,我限制用户只输入14个字符。但是,一旦使用this.setRawValue(Ext.util.Format.currency(this.getValue())设置了值,我的文本字段就会附加.00和一个美元符号 因此,设置该值后,textfield的总长度将变为18,并且它始终会给出max length违规错误消息 有没有办法避免错误消息,但仍然限制用户只输入14个字符?我正在尝试清除maxLength
this.setRawValue(Ext.util.Format.currency(this.getValue())设置了值,我的文本字段就会附加.00和一个美元符号代码>
因此,设置该值后,textfield的总长度将变为18,并且它始终会给出max length违规错误消息
有没有办法避免错误消息,但仍然限制用户只输入14个字符?我正在尝试清除maxLength文本,但我找不到一种方法或解决方法
任何指针都会有帮助。应用格式时,您可以覆盖textfield
的validator
功能,并调用textfield.validate()
这是一个概念证明,您需要更新正则表达式
现在,如果您可以编写一个好的正则表达式并让它在一行中进行验证,那么您可以始终使用VType
。只要确保在设置货币时调用textfield.validate()
,因为使用格式util更改文本不会导致运行validate函数
更新
所以我到处寻找一种内置的方法,但这是我能得到的最好的方法。
我们要做的是捕获文本字段
上的按键
事件,并测试我们有多少个字符。如果我们超过阈值(本例中为14),我们只需使用当前输入的子字符串.setValue()
在这把小提琴中,我将textfield
分解成它自己的变量,这样我就可以轻松地执行.on()
。如果您使用的是MVC,则只需在控制器中侦听按键
事件即可
另外请注意,没有enforceMaxLength
或maxLength
config,我添加了enableKeyEvents
config。JSFIDLE上的所有代码都会对我们有所帮助。Hello Lmmo。谢谢你的帮助。很抱歉搞混了,但我的问题是关于“如何清除MaxLength文本属性?”我想要的是“文本字段应该停止用户输入x”字符,但如果验证失败,则不会触发任何消息。非常感谢。