废话不多说,直接上代码,javascript的。
/**
* 加载json的数据到页面的表单中,以name为唯一标示符加载
* @param {String} jsonStr json表单数据
*/
function loadJsonDataToForm(jsonStr){
try{
//var obj = eval("("+jsonStr+")");
var obj = jsonStr;
var key,value,tagName,type,arr;
for(x in obj){
key = x;
value = obj[x];
$("[name='"+key+"'],[name='"+key+"[]']").each(function(){
tagName = $(this)[0].tagName;
type = $(this).attr('type');
if(tagName=='INPUT'){
if(type=='radio'){
$(this).attr('checked',$(this).val()==value);
}else if(type=='checkbox'){
arr = value.split(',');
for(var i =0;iif($(this).val()==arr[i]){
$(this).attr('checked',true);
break;
}
}
}else{
$(this).val(value);
}
}else if(tagName=='SELECT' || tagName=='TEXTAREA'){
$(this).val(value);
}
});
}
}catch(e){
alert("加载表单:"+e.message+",数据内容"+JSON.stringify(jsonStr));
}
}
平时我就是Ajax到后台拿数据,拿完之后直接loadJsonDataToForm(obj),相当好用。