将Ext表单的数据封装成对象

本文介绍了一个用于自动封装ExtJS表单数据的方法,该方法能够处理包括单选按钮、复选框及组合框在内的多种表单元素,并将其转换为易于处理的JavaScript对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 前台表单数据的封装,自动将一个表单中的数据封装成一个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;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值