Ext.form.BasicForm的getValues()和getFieldValues()辨析
环境:Extjs3.3
getValues————Returns the fields in this form as an object with key/value pairs as they would be submitted using a standard form submit.
getFieldValues————Retrieves the fields in the form as a set of key/value pairs, using the getValue() method.
示例:
若表单中存在combo表单项,displayField和valueField是不同值。
用getValues得到的是displayValue
用getFieldValues得到的是valueField
注意:
1、getFieldValues(true)标示只得到脏数据(变动过的数据)
2、getFieldValues不会得到处于disable状态的表单项值。
若需要disable状态的表单项值可以做如下修改:
Ext.override(
Ext.form.BasicForm,
{
getFieldValues : function(dirtyOnly){
var o = {},
n,
key,
val;
this.items.each(function(f) {
if (dirtyOnly !== true || f.isDirty()) {
n = f.getName();
key = o[n];
val = f.getValue();
if(Ext.isDefined(key)){
if(Ext.isArray(key)){
o[n].push(val);
}else{
o[n] = [key, val];
}
}else{
o[n] = val;
}
}
});
return o;
}
}
)