请求Ajax 带返回值的通用方法, 自动获取页面控件值(form表单post方法提交 ),自动给控件赋值

时间:2022-10-17 19:00:34

//自动获取页面控件值

function GetWebControls(element) {
var reVal = "";

$(element).find('input,select,textarea').each(function (r) {
var id = $(this).attr('id');
var value = $(this).val();
var type = $(this).attr('type');
switch (type) {
case "checkbox":
if ($(this).is(':checked')) {
reVal += '"' + id + '"' + ':' + '"1",';
} else {
reVal += '"' + id + '"' + ':' + '"0",';
}
break;
default:
reVal += '"' + id + '"' + ':' + '"' + $.trim(value) + '",';
break;
}
});
/*
将回车字符替换成\\n
*/
reVal = reVal.replace(/\n/g, " ");
reVal = reVal.substr(0, reVal.length - 1);
return jQuery.parseJSON('{' + reVal + '}');

}

 

 

//自动给控件赋值
function SetWebControls(data) {
for (var key in data) {
var id = $('#' + key);
var value = $.trim(data[key]).replace(" ", "");
var type = id.attr('type');
switch (type) {
case "checkbox":
if (value == 1) {
id.attr("checked", 'checked');
} else {
id.removeAttr("checked");
}
break;
default:
id.val(value);
break;
}
}
}

/* 请求Ajax 带返回值*/

function postAjax(url, parm, callBack) {
$.ajax({
type: 'post',
contentType: 'application/json',
dataType: 'json',
url: url,
data: JSON.stringify(parm),
cache: false,
async: false,
success: function (msg) {
callBack(msg);
}
});
}

 

========================分割线 以上是js通用方法,以下是调用==========================

//添加
function add() {
var postData = GetWebControls("#fm");          // 获取post方法from表单的内容 
postAjax("../url", postData, function (data) {      // url:后台控制器的url  postData:需要提交json格式的参数  可为null  或者自定义 var postData = { "id": id };

if (data != null && data != "") {
alert(data);
}
else {
//  doing something...
}
});
}

//更新

function updateData(id) {
var postData = { "id": id };
postAjax("../url", postData, function (data) {
var results = eval(data); 
var result = results[0];
if (result != null && result != "") {
SetWebControls(result);  // 自动给控件赋值
}
else {
//doing something ...
}
});
}

-----待续