群里有个人问有没有像form的getValues方法,可惜没有,于是就动手扩展了一个。一下是扩展方法的代码
Ext.override(Ext.form.FieldSet,
{
getValues: function (asString) {
var self = this;
var nform = document.createElement('form');
document.appendChild(nform);
nform.style.display = 'none';
var fs = self.el.dom;
nform.appendChild(fs.cloneNode(true));
var fss = Ext.lib.Ajax.serializeForm(nform);
document.removeChild(nform);
if (asString) {
return fss;
}
return Ext.urlDecode(fss);
}
});
使用例子:
var form = new Ext.form.FieldSet({
title: 'form',
defaultType: 'textfield',
labelAlign: 'right',
labelWidth: 50,
buttonAlign: 'center',
frame: true,
width: 220,
items: [{
fieldLabel: '文本框',
name: 'field1',
value: 45
}, {
fieldLabel: '文本框',
name: 'field2',
value: 12
}],
buttons: [{
text: '按钮'
}]
});
form.render("form");
form.getValues();