extjs中TextField有setMaxLength()和setMinLength(),但是超出位数仍然可以继续输入,现在对TextField重写来实现这个功能
public class EnhancedTextField<D> extends TextField<D> { public void setMaxLength(int m) { super.setMaxLength(m); if (rendered) { getInputEl().setElementAttribute("maxLength", m); } } protected void onRender(Element parent, int index) { super.onRender(parent, index); getInputEl().setElementAttribute("maxLength", getMaxLength()); } }
现在可以创建一个EnhancedTextField对象调用setMaxLength()即可以实现输入到最大位数以后不能再输入的效果
EnhancedTextField sendNumber = new EnhancedTextField<String>(); sendNumber.setFieldLabel("<font color=red>*</font>数量"); sendNumber.setAllowBlank(false); sendNumber.setToolTip("最大数量为50000张,只能输入1到50000的数字"); sendNumber.setRegex("[1-9][0-9]*"); sendNumber.getMessages().setRegexText("只能输入1到50000的数字"); sendNumber.setMaxLength(5);