[英]How to increase and decrease textfield maxLength
我有一个textfield
,在其中声明maxLength: 15
。 在focusleave
事件上,我要添加一些其他字符,
所以在这里我想增加textfield
长度。
我的代码是:
{
xtype: 'textfield',
name: 'email',
fieldLabel: 'Email Address',
maxLength: 15
vtype: 'email' // requires value to be a valid email address format,
listeners: {
focusleave: function( this, event, eOpts) {
var myVAl = this.Value();
myVAl.toLocaleString({
minimumFractionDigits: 3
});
}
}
}
在这里,如果我输入15个字符,然后我希望在每三个字符后加十进制,那么我只能得到13个用完字符。
那么在这种情况下如何增加和减少maxLength
?
那么如何增加和减少maxLength
是的,您可以使用textfield.inputEl
更改focusenter
和foucuseleave
事件。
textfield.inputEl.dom.maxLength=15//Your dynamic value here
在此FIDDLE中 ,我使用相同的textfield.inputEl
创建了一个演示。 希望这会帮助/指导您达到要求。
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
function stringInsert(str, n, joinwith) {
var ret = [],
i = 0,
len = str.length;;
for (; i < len; i += n) {
ret.push(str.substr(i, n))
}
return ret.join(joinwith)
};
Ext.create({
xtype: 'form',
title: 'Demo Form',
bodyPadding: 15,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
name: 'email',
fieldLabel: 'Email Address',
vtype: 'email', // requires value to be a valid email address format,
listeners: {
focusenter: function (field) {
var value = field.getValue().replace(/\./g, '');
field.setValue(value);
field.inputEl.dom.maxLength=15;
},
focusleave: function (field, event, eOpts) {
var value = this.getValue(),
newValue = stringInsert(value, 3, '.');
field.inputEl.dom.maxLength=newValue.length;
field.setValue(newValue);
}
}
}]
})
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.