其实这个接口没有太大必要去做,因为jQuery里面已经有了现成的接口可以将form的数据序列化到json字符串中,或者是数组中,所以只要用jQuery先获取一下,然后再转换为我们需要的格式就可以了。
这里之所以要添加这么一个方法,完全是为了用起来更方便,实现很简单,也就不做过多描述了,直接上代码:
实现代码:
/** * From扩展 * getData 获取数据接口 * * @param {Object} jq * @param {Object} params 设置为true的话,会把string型"true"和"false"字符串值转化为boolean型。 */ $.extend($.fn.form.methods, { getData: function(jq, params){ var formArray = jq.serializeArray(); var oRet = {}; for (var i in formArray) { if (typeof(oRet[formArray[i].name]) == 'undefined') { if (params) { oRet[formArray[i].name] = (formArray[i].value == "true" || formArray[i].value == "false") ? formArray[i].value == "true" : formArray[i].value; } else { oRet[formArray[i].name] = formArray[i].value; } } else { if (params) { oRet[formArray[i].name] = (formArray[i].value == "true" || formArray[i].value == "false") ? formArray[i].value == "true" : formArray[i].value; } else { oRet[formArray[i].name] += "," + formArray[i].value; } } } return oRet; } });
使用方式:
$('#ff').form('getData',true);