修正Extjs表單中emptyText的提交

//使用Ext3.3自帶的清除emptyText的方法

//onRenderTmp不放在override中,因爲在Ext3.0下,會造成遞歸導致堆棧溢出
var onRenderTmp = Ext.form.FormPanel.prototype.onRender;
Ext.override(Ext.form.FormPanel, {
//緩存原有onRender方法再重寫(這裏不方便使用extend,因爲項目中使用的都是Ext.form.FormPanel)
onRender: function(ct, position){
onRenderTmp(ct, position);
this.form.on({
//使用Ext3.3自帶的清除emptyText的方法
beforeaction : function(form, action){
var fields = form.items,
emptyFields = [],
setupEmptyFields = function(f){
if (f.el.getValue() == f.emptyText) {
emptyFields.push(f);
f.el.dom.value = "";
}
if(f.isComposite && f.rendered){
f.items.each(setupEmptyFields);
}
};

fields.each(setupEmptyFields);
}
});
}
});


注:由於原有自己的方式有bug,而且知道Ext後續版本有清除方式,所以此處修改爲使用Ext3.3的代碼,以免誤導別人。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章