在通过jquery ajax发布到服务器之前将param转换为大写

时间:2013-09-18 13:21:31

标签: jquery asp.net-mvc asp.net-mvc-3

下面是我使用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();
            }
        });

1 个答案:

答案 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