博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery特效 商品SKU属性规格选择实时联动
阅读量:6958 次
发布时间:2019-06-27

本文共 4736 字,大约阅读时间需要 15 分钟。

转载,

功能:各种属性的值选中后,SKU填写表格进行变动,对属性、属性值的数量自适应,编辑时不因去掉勾选导致原有值不显示

所有代码均属原创,现在共享,如果有更好的实现方式,希望互相交流

最终实现效果图

 

HTML代码

属性

  JAVASCRIPT代码

//如为编辑页面,HTML代码的Input需设置为checked,JS部分没有去做判断//后端传过来的值,编辑SKU时使用,新建时设置为{}/*var query = {    '1_5_7':{        'price':'258',        'scan':'690001',        'sku':'H10GH'    },    '1_6_7':{        'price':'278',        'scan':'',        'sku':'H18GH'    },    '1_5_8':{        'price':'258',        'scan':'',        'sku':'H10GL'    },    '1_6_8':{        'price':'278',        'scan':'',        'sku':'H18GL'    }};*/var query = {};var linekey = [];//初始化表格行内输入框的key值$(function(){    $(':checkbox').on('ifChecked',function(){        $(this).attr('checked', true);        buildT();    });    $(':checkbox').on('ifUnchecked',function(){        $(this).removeAttr('checked');        buildT();    });    //buildT();//如果是编辑页面,去掉注释进行表格初始化});function buildT(){    var specs = [];    var maxline = 1;//初始化SKU最大行数    $('#specList').children().each(function(){        var _checkobj = $(this).find(':checked'), _list = [];        if(_checkobj.length == 0){            return;        }        $(_checkobj).each(function(index,item){            _list.push({                'title':$(item).parent().next().html(),//由于使用了iCheck插件,层级关系发生了变化,需要使用parent()来重新定位lable标签的值                'id':$(item).val()            });        });        data = {            'id': $(this).attr('server-id'),            'title':$(this).attr('server-name'),            'count':_checkobj.length,            'childlist':_list        }        maxline = maxline*parseInt(_checkobj.length);        specs.push(data);    });    //循环获取rowspan值    var yu = 1;    $(specs).each(function(index){        specs[index].row = (maxline/specs[index]['count'])/yu;        yu = yu*specs[index].count;    });    //构建表格行数据    var headarr = [], tbodyarr = [];    $(specs).each(function(index, item){        headarr.push(item.title);        tbodyarr = buildTT(tbodyarr, item);    });    var headdata = '', tbodydata = '';    $.each(headarr, function(index){        headdata += ''+headarr[index]+'';    });    headdata += '价格条形码SKU';    $.each(tbodyarr, function(index){        tbodydata += ''                    +tbodyarr[index]                    +''                    +''                    +''                    +'';    });    $('#tableAttr').html('').append(''+headdata+'').append(''+tbodydata+'');    buildTTT();}/** * 构建表格每行的td值 * @param odata 前面经过处理的数据 * @param adata 需要新添加进去处理的数据 */function buildTT(odata, adata){    var data = [], _linekey = [];    if(odata.length==0){        $(adata.childlist).each(function(index, item){            var _data = ''+item.title+'';            data.push(_data);            _linekey[index] = item.id;        });    }else{        var i=0;        $(odata).each(function(index, item){            $(adata.childlist).each(function(index2, item2){                var _item = index2 == 0 ? item.concat() : '';                var _data = _item + ''+item2.title+'';                data.push(_data);                _linekey[i] = linekey[index] + '_' +item2.id;                i++;            });        });    }    linekey = _linekey;    return data;}function buildTTT(){    //对初始化的表格每行的key值进行排序,与入库值保持一致    $(linekey).each(function(index){        linekey[index] = linekey[index].split('_').sort().join('_');    });    //对初始化的表格input进行赋值    $('#tableAttr tbody').children('tr').each(function(index){        var _obj = $(this).find('input');        var _linekey = linekey[index];        _obj.eq(0).attr('name', 'price['+_linekey+']');        _obj.eq(1).attr('name', 'scan['+_linekey+']');        _obj.eq(2).attr('name', 'sku['+_linekey+']');        if(query[_linekey]){            _obj.eq(0).val(query[_linekey]['price']);            _obj.eq(1).val(query[_linekey]['scan']);            _obj.eq(2).val(query[_linekey]['sku']);        }    });}

  

转载于:https://www.cnblogs.com/shifu204/p/7089984.html

你可能感兴趣的文章
[置顶] Jquery插件之信息弹出框showInfoDialog(成功、错误、警告、通知)...
查看>>
回顾2017,展望2018
查看>>
[转]DPM2012系列之四:配置邮件报警功能
查看>>
LINUX下搭建mail服务器
查看>>
手把手教你把你的网站改为https
查看>>
Rxjs入门
查看>>
静态路由管理距离问题
查看>>
汽车常识全面介绍 - 引擎概论
查看>>
Android源码个个击破之Activity的渲染过程深入剖析
查看>>
C# 免费发邮件
查看>>
final关键字
查看>>
《Java程序员面试宝典》学习笔记(数据结构部分)
查看>>
[转载] 中华典故故事(孙刚)——29 拍马屁
查看>>
[转载] Discrete Mathematics——06 集合代数
查看>>
018,idea 下 如何集成 generator
查看>>
Java集合之队列和栈
查看>>
关于Oracle的一些学习简单知识
查看>>
基于Spring MVC框架的Http流程分析
查看>>
ios翻译
查看>>
《技术范儿》NO.3:畅谈数字时代存储变革之数据管理 ——随堂笔记
查看>>