1

下面是我使用 toUpperCase() 转换我的 ajax 函数参数的方法,但是我的项目中有很多函数,我很难将每个参数转换为大写。

我如何使用 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();
            }
        });
4

1 回答 1

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 示例

于 2013-09-18T16:52:14.310 回答