$.fn.populateForm = function(data){
return this.each(function(){
var formElem, name;
if(data == null){this.reset(); return; }
for(var i = 0; i < this.length; i++){
formElem = this.elements[i];
//checkbox的name可能是name[]数组形式
name = (formElem.type == "checkbox")? formElem.name.replace(/(.+)\[\]$/, "$1") : formElem.name;
if(data[name] == undefined) continue;
switch(formElem.type){
case "checkbox":
if(data[name] == ""){
formElem.checked = false;
}else{
//数组查找元素
if(data[name].indexOf(formElem.value) > -1){
formElem.checked = true;
}else{
formElem.checked = false;
}
}
break;
case "radio":
if(data[name] == ""){
formElem.checked = false;
}else if(formElem.value == data[name]){
formElem.checked = true;
}
break;
case "button": break;
default: formElem.value = data[name];
}
}
});
};
调用方式:$(“#formId”).populateForm(data);