//将JSON字符串的值回填回表单
function loadData(obj) {
/* var obj = eval("("+jsonStr+")"); */
var key, value, tagName, type, arr;
for (x in obj) {
key = x;
value = obj[x];
$("[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; i < arr.length; i++) {
if ($(this).val() == arr[i]) {
$(this).attr('checked', true);
break;
}
}
} else {
$(this).val(value);
}
} else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
$(this).val(value);
}
});
}
}
//获取表单中所有的数据
//注意:此方法返回的是 JSON 对象而非 JSON 字符串。
function getFormJson(id) {
var test = $("#" + id).serializeArray(); //serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。
var dataStr = "{";
for (var i = 0; i < test.length; i++) {
var nameT = test[i].name;
var valueT = test[i].value;
dataStr = dataStr + "\"" + nameT + "\":\"" + valueT.trim() + "\","; //trim()方法用来去除空格
}
/*获取复选框的值,一般复选框只有一个时,我们在选中和未选中时都要传一个值。选中时,上面的方法会获取到,但是未选中时,这里可以定义你要传的值,我这里传的值为字符串 '0' ,当然你也可以定义其他的值*/
$("#" + id + " input[type='checkbox']").each(function () {
if (!$(this).is(':checked')) { //这里判断复选框如果未被选中的话执行下一步
dataStr = dataStr + "\"" + $(this).attr('name') + "\":\"0\",";
}
});
dataStr = dataStr.substring(0, dataStr.length - 1); //去掉最后一个属性的逗号
dataStr = dataStr + "}";
//var dataJson = JSON.parse(dataStr); //parse()方法把dataStr对象转成json数据
//return dataJson;
return dataStr;
}
//获取地址栏中参数的值
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}