解決Ext.form.TextField的 maxLength 屬性失效問題

 

Ext.form.TextField 的 maxLength/size 處理的並不是很好,設置了maxLength後還是可以任意輸入,國外extjs論壇看到有人的帖子,通過prototype重定義這兩個屬性,試了一下,很有效
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;
}
};
上面的js放在ext-all.js的引用之後就可以了,然後再指定maxLength屬性就能控制輸入長度。
這時候出現問題了,當提交表單數據時,如果combobox值爲空,通過getValue()方法獲得的值會是emptyText屬性的值。如:"請選擇XXX"。從問題中可以知道是因爲value值被改變了,只要將上述代碼中的部分代碼去掉即可。 被去掉部分如下:
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;

發佈了5 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章