限制数字输入框的输入长度
输入框输入过大的数字会自动变为科学计数法
为什么我加了maxLength限制了长度 输入框还能输进去超过我限制的长度?
先看一下官方文档对maxLength的解释
翻译过来就是:
验证允许的最大输入字段长度。此行为旨在通过改进可用性向用户提供即时反馈,以允许粘贴和编辑或过度键入和回溯。
要限制可输入字段的最大字符数,请使用enforceMaxLength选项。
默认为Number.MAX\u值。
默认为:
最大值
问题就出在这 use the enforceMaxLength option.
我使用maxlength是需要一个开关的,开关就是这个enforceMaxLength 默认是false
所以我只写一个maxLength:6,是不行的,还得再加一个enforceMaxLength:true
enforceMaxLength和maxLength搭配使用
xtype: 'numberfield',
padding: '10px 10px 10px 20px',
enforceMaxLength:true,
maxLength: 6,
minValue: 0,
maxValue: 999999,
anchor: '70%',
allowDecimals: false, //是否允许小数
hideTrigger: true, //隐藏触发器
keyNavEnabled: false, //导航键已启用
mouseWheelEnabled: false, //鼠标滚轮已启用
minText :'输入大小必须在0-999999之间',
maxText: '输入大小必须在0-999999之间',
negativeText:'输入大小必须在0-999999之间',
fieldLabel: '大小策略(M)'
#下面算是废话吧 我出这个问题的原因
数字输入框输入大小的时候,设置了maxValue: 999999,但还是能输入比999999还大的数字,
过大的数直接被numberfield里面的方法改为科学计数法
(例如454545454545454545454545454545454545会变为4.545454545454546e+35),
但验证时后台不认识呀,所以得加一个位数限制,首先就想到了maxLength,但是加上了不能用,
看了官方文档才知道max不能单独使用
所以 以后看官方文档时一定要认真看,我就是没认真看,Ext有部分是搭配使用,这个一定要注意。