开发工具与关键技术:Visual Studio
作者:胡宁淇
撰写时间:2019年5月26日
这是jquery 根据json对象填充form表单的方法,我们在修改数据的时候首先就要进行数据回填。
我们用post提交数据就调用loadDatatoForm这个方法进行form表单的数据回填。
$.post("/SystemManagements/CollegeInfor/SelectAcademeById", { academeId:
UacademeId },
function (data) {
loadDatatoForm("formUpdateAcademe", data);//根据json对象填充form表单
},"json")
我们看到loadDatatoForm这个方法中有两个参数,一个是要填充数据表格的ID,一个是通过控制器写方法查询出来的数据。
function
loadDatatoForm(fromId, jsonDate) {
var obj = jsonDate;
var key, value, tagName, type, arr;
for (x in obj) {//循环json对象
key = x;
value = obj[x];
//$("[name='"+key+"'],[name='"+key+"[]']").each(function(){
//更加form表单id 和 json对象中的key查找 表单控件
$("#" + fromId + " [name='" + key + "'],#" + fromId + " [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') {
try {
//数组
arr = value.split(',');
for (var i = 0; i <
arr.length; i++) {
if ($(this).val() == arr[i]) {
$(this).attr('checked', true);
break;
}
}
} catch (e) {
//单个
$(this).attr('checked', value);
}
} else {
$(this).val(value);
}
} else if (tagName == 'TEXTAREA') {
$(this).val(value);
} else if (tagName == 'SELECT') {
//console.log($(this).hasClass("select2"));
if ($(this).hasClass("select2")) {
//select2 插件的赋值方法
$(this).val(value).trigger("change");
} else {
$(this).val(value);
}
}
});
}
}