核心代码: 往jQuery对象添加两个功能函数, 分别是序列/反序列化, 简单粗暴的思路, 不过只能操作input, textarea, select元素的值, 想要操作其他输入类型的值, 如多选/单选框, 可以另外写, 或者在此基础上拓展或按照提供的思路重写, 实际开发中也够用了(懒
$.fn.extend({
getInputMap: function(elems) {
var map = {};
$.each(this.find(elems), function(i,e) {
e.value.trim() && e.id && (map[e.id] = e.value);
});
return map;
},
deSerialize: function(data,elems) {
$.each(this.find(elems), function(i,e) {
e.id && data[e.id] && $(this).val(data[e.id]);
});
}
})
调用:
var formData = $(selector).getInputMap(selector);
$(selector).deSerialize(data, selector);
注意: 被序列/反序列的元素必须设置id, 如下
栗子:
- html
<!DOCTYPE html>
<html>
<head