/**
* 前台表单数据的封装,自动将一个表单中的数据封装成一个js对象obj {}
* 说明:
* 1、对单选按钮radio,值为选中的按钮的boxLabel
* 2、对组合框combo,值为选中的值
* 3、对复选框checkbox,值为选中的框的boxLabel,多项以","分隔组成字符串
* @param 表单对象
* @author 忧里修斯
*/
Ext.namespace('Ext.ux');
Ext.dream = {
getObjFromForm : function(form) {
fields = form.getForm().items;
var obj = {};
var flag = true;// 特殊标记
var checkboxValue = [];//保存复选框中的值
var checkBoxName;//复选框对应字段名称
for (var i = 0; i < fields.length; i++) {
// 对应一个表单字段
var field = fields.itemAt(i);
var value = field.getValue();// 字段值
var xtype = field.getXType();// 表单域类型
if (xtype == 'radio') {// 单选处理
if (flag) {
if (value) {
value = field.boxLabel;
flag = false;
obj[field.name] = value;
}
}
} else if (xtype == 'combo') {
var index = field.store.find(field.valueField, value);// 根据属性名和值查找记录的位置
if (index != -1) {
var selItem = field.store.getAt(index);
value = selItem.get(field.valueField);
obj[field.name] = value;
}
} else if(xtype == 'checkbox'){
if(value){//若选中
checkBoxName = field.name;
checkboxValue.push(field.boxLabel)
}
}else{//其他类型
obj[field.name] = value;
}
}
obj[checkBoxName] = checkboxValue;
return obj;
}
}
将Ext表单的数据封装成对象
最新推荐文章于 2018-08-07 09:56:37 发布