0

私は $jquery ajax メソッドを使用してデータを取得し、3 つのフィールドに表示します。To、CC、Bcc の 3 つの異なるテキスト ボックスに同じ ajax メソッドを使用しました。また、1 つの ajax メソッドを使用してデータを取得したいのですが、ここでは tagSource : 1 つの関数ajax メソッドを呼び出す

jQuery(document).ready(function () {
            jQuery("#totags").tagit({
                allowSpaces: true,
                tagSource: function (request, response) {
                    $.ajax({
                        type: "POST",
                        url: "Blog.aspx/GetName",
                        data: "{'match': '" + request.term + "'}",
                        dataType: "json",
                        contentType: "application/json",
                        success: function (data) {
                            console.log(data);
                            if (data.d != null) {
                                response($.map(data.d, function (item) {
                                    return {
                                        label: item.Name,
                                        value: item.id,
                                    };
                                }));
                            }
                        }
                    });
                },
            });
            jQuery("#cctags").tagit({
                allowSpaces: true,
                tagSource: function (request, response) {
                    $.ajax({
                        type: "POST",
                        url: "Blog.aspx/GetName",
                        data: "{'match': '" + request.term + "'}",
                        dataType: "json",
                        contentType: "application/json",
                        success: function (data) {
                            console.log(data);
                            if (data.d != null) {
                                response($.map(data.d, function (item) {
                                    return {
                                        label: item.Name,
                                        value: item.id,
                                    };
                                }));
                            }
                        }
                    });
                },
            });
            jQuery("#bcctags").tagit({
                allowSpaces: true,
                tagSource: function (request, response) {
                    $.ajax({
                        type: "POST",
                        url: "Blog.aspx/GetName",
                        data: "{'match': '" + request.term + "'}",
                        dataType: "json",
                        contentType: "application/json",
                        success: function (data) {
                            console.log(data);
                            if (data.d != null) {
                                response($.map(data.d, function (item) {
                                    return {
                                        label: item.Name,
                                        value: item.id,
                                    };
                                }));
                            }
                        }
                    });
                },
            });
        });
4

2 に答える 2

3

jQuery を使用してセレクターをチェーンできます。

jQuery(document).ready(function () {
    jQuery("#totags, #cctags, #bcctags").tagit({
        // ..
    });
});
于 2012-10-22T13:05:19.897 に答える
0

一般に、それを var に割り当てます:

var ajaxcall=function(request, response) {
    $.ajax({
        type: "POST",
        url: "Blog.aspx/GetName",
        data: "{'match': '" + request.term + "'}",
        dataType: "json",
        contentType: "application/json",
        success: function(data) {
            console.log(data);
            if (data.d != null) {
                response($.map(data.d, function(item) {
                    return {
                        label: item.Name,
                        value: item.id,
                    };
                }));
            }
        }
    });
};​

       jQuery("#totags").tagit({
            allowSpaces: true,
            tagSource: ajaxcall
        });
        jQuery("#cctags").tagit({
            allowSpaces: true,
            tagSource: ajaxcall
        });
        jQuery("#bcctags").tagit({
            allowSpaces: true,
            tagSource: ajaxcall
        });

特に、フローレントが答えたようにチェーンを使用してください。

于 2012-10-22T13:08:51.923 に答える