级联函数上的多个参数

Multiple parameters on cascade function

本文关键字:参数 函数 级联      更新时间:2023-09-26

我需要在级联函数中传递多个参数:

// Cascade function
(function ($) {
    $.fn.cascade = function (options) {
        var defaults = {};
        var opts = $.extend(defaults, options);
        return this.each(function () {
            $(this).change(function () {
                var selectedValue = $(this).val();
                if (selectedValue == '') {
                    opts.childSelect.empty();
                    return;
                }
                var params = {};
                params[opts.paramName] = selectedValue;
                $.post(opts.url, params, function (items) {
                    opts.childSelect.empty();
                    if (opts.firstOption != "")
                        opts.childSelect.append(
                            $('<option/>')
                                .attr('value', '')
                                .text(opts.firstOption));
                    $.each(items, function (index, item) {
                        opts.childSelect.append(
                            $('<option/>')
                                .attr('value', item.Id)
                                .text(item.Name)
                        );
                    });
                    if (typeof (opts.callback) == "function") { opts.callback(); }
                });
            });
        });
    };
})(jQuery);

在调用中,我需要传递makeId和categoryId值:

// bind cascade Make dropdown
$("#Make_Id").cascade({
    url: "/Ad/ListModelByCategoryByMake",
    paramName: "makeId",
    firstOption: 'Selecione o Modelo...',
    childSelect: $("#Model_Id")
});

调用是通过post进行的,那么我如何调用具有两个参数的级联函数呢?

谢谢。

函数:

$.fn.cascade = function (options, param2) {
    /// ....
}

调用:

$("#Make_Id").cascade({
    url: "/Ad/ListModelByCategoryByMake", // is better to use @Url.Action() helper here
    paramName: "makeId",
    firstOption: 'Selecione o Modelo...',
    childSelect: $("#Model_Id")
}, 'your_second_param');