json化表单数据
2014-05-08 14:28
302 查看
/** * josn化表单数据 * @name baidu.form.json * @function * @grammar baidu.form.json(form[, replacer]) * @param {HTMLFormElement} form 需要提交的表单元素 * @param {Function} replacer 对参数值特殊处理的函数,replacer(string value, string key) * @returns {data} 表单数据js对象 */ form.json = form.json || function (form, replacer) { var elements = form.elements, replacer = replacer || function (value, name) { return value; }, data = {}, item, itemType, itemName, itemValue, opts, oi, oLen, oItem; /** * 向缓冲区添加参数数据 * @private */ function addData(name, value) { var val = data[name]; if(val){ val.push || ( data[name] = [val] ); data[name].push(value); }else{ data[name] = value; } } for (var i = 0, len = elements.length; i < len; i++) { item = elements[i]; itemName = item.name; // 处理:可用并包含表单name的表单项 if (!item.disabled && itemName) { itemType = item.type; itemValue = baidu.url.escapeSymbol(item.value); switch (itemType) { // radio和checkbox被选中时,拼装queryString数据 case 'radio': case 'checkbox': if (!item.checked) { break; } // 默认类型,拼装queryString数据 case 'textarea': case 'text': case 'password': case 'hidden': case 'file': case 'select-one': addData(itemName, replacer(itemValue, itemName)); break; // 多行选中select,拼装所有选中的数据 case 'select-multiple': opts = item.options; oLen = opts.length; for (oi = 0; oi < oLen; oi++) { oItem = opts[oi]; if (oItem.selected) { addData(itemName, replacer(oItem.value, itemName)); } } break; } } } return data; };
相关文章推荐
- (更新)knockout.js学习——1.3例子——绑定的详细语法
- C#/JavaScript/SqlServer 对日期时间的操作整理汇总
- Javascript 中的false、0、null、undefined和空字符串对象
- js 取值 getElementsByTagName,getElementsByName
- js 小知识
- js 函数定义三种方式
- JavaScript 类(笔记)
- 详解Javascript 中的this指针
- 10个对JavaScript开发者超级有用的工具
- JSON toBean解决方案
- js解析json
- 24 JavaScript Best Practices for Beginners
- JS的File对象
- 25+ 开源的在线购物软件(PHP, JavaScript 和 ASP.Net)
- ExtJS表单验证
- IE 下js里面new Date("2011-11-11") 出现nan的问题以及解决方法
- ajaxFileUpload 上传文件 以及 返回值 带 <pre> 标签问题
- XML和JSON解析
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- JavaScript 使用