原ExtJS 的 TextFiled 設置了maxLength/size 後還是可以任意輸入字數, 僅是在 輸入/驗證 過程中顯示錯誤訊息, 沒有提前限制使用者輸入.
現在可以透過prototype重定義這兩個屬性, 來達成限制輸入的能力 (code 放在 ext-all.js 之後即可)
Ext.form.TextField.prototype.size = 20; Ext.form.TextField.prototype.initValue = function(){ if(this.value !== undefined){ this.setValue(this.value); }else if(this.el.dom.value.length > 0){ this.setValue(this.el.dom.value); } this.el.dom.size = this.size; if (!isNaN(this.maxLength) && (this.maxLength *1) > 0 && (this.maxLength != Number.MAX_VALUE)) { this.el.dom.maxLength = this.maxLength *1; } };