jQuery多级联动多选框

jQuery 实现的多选框联动插件

// 使用:$(_event_src_).autoSelect(_reload_, reload_url);
// 前台用get方法传输<select>标签的属性"name"和选中<option>的属性"value"
// 后台用json格式传输数据
//     格式: { value:<option>的属性"value", text:<option>的显示文本 }
(function($) {
    $.fn.extend({
        autoSelect: function(dest, url) {
            return this.each(function() {
                $.SelectChange($(this), $(dest), url);
            });
        },
    });
    
    // 重置复选框
    $.SelectReset = function(target) {
        if (target != null) {
            $.SelectReset(target.data("nextSelect"));
            target.empty();            
            target.append(target.data("defaultOpt"));
        }
    };
    
    // 加载复选框
    $.SelectLoad = function(target, data) {
        $.each(data, function(index, content) {
            var option = $("<option></option>")
                .attr("value", content.value).text(content.text);
            target.append(option);
        });
    };
    
    // 绑定 change 事件
    $.SelectChange = function(target, dest, url) {
        // 绑定联动链
        target.data("nextSelect", dest);
        
        // 记录默认选项(first option)
        if (target.data("defaultOpt") == null)
            target.data("defaultOpt", target.children().first());
        dest.data("defaultOpt", dest.children().first());
        
        $(document).ready(function() {
            target.change(function(event) {
                var _target = event.target || window.event.srcElement;
                if (_target.value != target.data("defaultOpt").attr("value")) {
                    $.getJSON(url, {
                        "name": _target.name,
                        "value": _target.value
                    }, function(data, status) {
                        if (status == "success") {
                            $.SelectReset(target.data("nextSelect"));
                            $.SelectLoad(target.data("nextSelect"), data);
                        }
                    }); // 后台以 json 格式传输数据
                } else {
                    $.SelectReset(target.data("nextSelect"));
                }
            });
        });
    };
})(jQuery);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值