serialize:function (form) {
var parts = [],
field = null,
i,
len,
j,
optLen,
option,
optValue;
for (i = 0, len = form.elements.length; i < len; i++) {
field = form.elements[i];
switch (field.type) {
case "select-one":
case "select-multiple":
if (field.name.length) {
for (j = 0, optLen = field.options.length; j < optLen; j++) {
option = field.options[j];
if (option.selected) {
optValue = "";
if (option.hasAttribute) {
optValue = (option.hasAttribute("value") ? option.value : option.text);
} else {
optValue = (option.attributes["value"].specified ? option.value : option.text);
}
parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue));
}
}
}
break;
case undefined:
//字段集
case "file":
//文件输入
case "submit":
//提交按钮
case "reset":
//重置按钮
case "button":
//自定义按钮
break;
case "radio":
//单选按钮
case "checkbox":
//复选框
if (!field.checked) {
break;
}
/* 执行默认操作 */
default:
if (field.name.length) {
parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));
}
}
}
return parts.join("&");
},
遍历表单元素,将输入控件收集起来,进行name=value这种拼接。
不懂。。
@sunxd: 这...看看js的东东~这个比较基本。
@sunxd:
serialize:function (form) { var parts = [], field = null, i, len, j, optLen, option, optValue; //遍历表单元素 for (i = 0, len = form.elements.length; i < len; i++) { field = form.elements[i]; //判断元素类型 switch (field.type) { case "select-one": case "select-multiple": //如果是多选select //如果元素有name属性 if (field.name.length) { //遍历可选项 for (j = 0, optLen = field.options.length; j < optLen; j++) { option = field.options[j]; //如果项是选中的 if (option.selected) { optValue = ""; //同时有value值(这个if...else...是为了兼容浏览器的) if (option.hasAttribute) { optValue = (option.hasAttribute("value") ? option.value : option.text); } else { optValue = (option.attributes["value"].specified ? option.value : option.text); } //将选择的项目拼接为name=value的形式,并加入到parts中。 parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue)); } } } break; case undefined: //字段集 case "file": //文件输入 case "submit": //提交按钮 case "reset": //重置按钮 case "button": //自定义按钮 break; case "radio": //单选按钮 case "checkbox": //复选框 if (!field.checked) { break; } /* 执行默认操作 */ default: if (field.name.length) { parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value)); } } } //返回表单元素的name=value拼接的值,用&连接 return parts.join("&"); },
@幻天芒: 谢谢啦
@sunxd: :)