下面是我使用toUpperCase()来转换我的ajax函数的params的方法,但是我的项目中有很多函数,我很难用大写转换每个param。
如何使用jquery的$ .ajaxSend全局函数在将每个参数发布到服务器之前将其转换为大写。
$.ajax({
url: isProductExistsURL,
dataType: 'json',
type: 'GET',
ContentType: "application/json; charset=utf-8",
data: {
locId: locId.toUpperCase(),
prodId: prodId.toUpperCase(),
suffix: suffix.toUpperCase()
},
success: function (exists) {
if (exists) {
if (showInSummary) {
populateValidationSummaryWithCustomError(msg, 'Product');
}
else {
jAlert(msg, 'Alert', function () {
$(element).val('');
$(element).focus();
});
}
}
},
error: function (data, error, status) {
debugger;
alert("error ");
},
beforeSend: function (settings,jqXHR) {
debugger;
$("input[type=text]").each(function () {
this.value = this.value.toUpperCase();
});
$.blockUI();
},
complete: function () {
$.unblockUI();
}
});
答案 0 :(得分:1)
好的,这是最后一次尝试。我希望它最终能满足您的需求。
我已按要求重写了全局ajaxSend
事件,并修改了查询字符串,将所有值设置为大写。除非你使用GET,否则这将无效,就像你在你的例子中一样......
$(document).on("ajaxSend", function(event, jqXHR, ajaxOptions) {
var url = ajaxOptions.url;
if (url.search("\\?") == -1) return;
var querystring = url.split("?")[1];
url = url.split("?")[0];
var split = querystring.split("&");
querystring = "";
for (var i = 0; i < split.length; i++) {
var key = split[i].split("=")[0];
var value = split[i].split("=")[1].toUpperCase();
querystring += (querystring == "" ? "?" : "&") +
key + "=" + value;
}
ajaxOptions.url = url + querystring;
});
这是一个有效的例子。只需检查控制台以查看URL,完成查询字符串和大写值...
<强> jsfiddle example 强>