Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EXT JS:如何在运行时将MaxLength强制为false?_Javascript_Html_Extjs_Extjs4 - Fatal编程技术网

Javascript EXT JS:如何在运行时将MaxLength强制为false?

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

我正在处理文本字段,并使用enforceMaxLength配置限制最大长度

因此,作为一个用例,我限制用户只输入14个字符。但是,一旦使用
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”字符,但如果验证失败,则不会触发任何消息。非常感谢。