
近期的项目里出现了需要对Ajax返回的JSON数据填充至表单,但一个一个赋值太复杂了,遂找到了此代码。
$.ajax({
url: xxxx,
type: "GET",
dataType: 'json',
success: function (result) {
if ("200" == result.code) {
var data = result.data
for(var k in data){
var type = $("[name="+k+"]").attr("type");
$("textarea[name="+k+"]").val(data[k]);
if (type!=undefined&&type!=null) {
if(type=="text"){
if(data[k]!=""&&data[k]!=null){
$("[name="+k+"]").val(data[k]);
}
}else if(type=="radio"){
if(data[k]!=""&&data[k]!=null){
$("[name="+k+"][value="+data[k]+"]").attr("checked","true");
}
}else if(type=="checkbox"){
var ckeckboxVal = data[k];
if(ckeckboxVal!=""&&ckeckboxVal!=undefined&&ckeckboxVal!=null){
if(ckeckboxVal.length==1){
$("[name="+k+"][value="+ckeckboxVal+"]").attr("checked","true");
}else{
var str = ckeckboxVal.split(",");
for (var i = 0; i < str.length; i++) {
$("[name="+k+"][value="+str[i]+"]").attr("checked","true");
}
}
}
}
}
}
}
}
}
});
注意:表单的name值要与json里的名称一致
不支持下拉框,数据在Json的data里,不是的自行修改。