/* 多级选择相关函数,如地区选择,分类选择 * common_select */ /* 地区选择函数 */ function regionInit(divId){ var area_id = 0; getArea(function(){ if(typeof(nc_a[area_id]) == 'object' && nc_a[area_id].length > 0){//数组存在 var area_select = $("#" + divId + " > select");//选择要初始化的对象 areaInit(area_select,area_id); } $("#" + divId + " > select").change(regionChange); // select的onchange事件 $("#" + divId + " > input:button[class='edit_region']").click(regionEdit); // 编辑按钮的onclick事件 }); } function areaInit(area_select,area_id){//初始化地区 getArea(function(){ if(typeof(area_select) == 'object' && nc_a[area_id].length > 0){ var areas = new Array(); areas = nc_a[area_id]; $(area_select).append(""); for (i = 0; i " + areas[i][1] + ""); } } }); } if(typeof(regionChange) != 'function'){//检测是否已经被定义过,防止重写 function regionChange(){ // 删除后面的select $(this).nextAll("select").remove(); // 计算当前选中到id和拼起来的name var selects = $(this).siblings("select").andSelf(); var id = ''; var names = new Array(); for (i = 0; i < selects.length; i++){ sel = selects[i]; if (sel.value > 0){ id = sel.value; name = sel.options[sel.selectedIndex].text; names.push(name); } } $(".area_ids").val(id); $(".area_name").val(name); $(".area_names").val(names.join("\t")); if (this.value > 0){//下级地区 var area_id = this.value; if(typeof(nc_a[area_id]) == 'object' && nc_a[area_id].length > 0){//数组存在 $("").change(regionChange).insertAfter(this); areaInit($(this).next("select"),area_id);//初始化地区 } } } } function regionEdit() { $(this).siblings("select").show(); $(this).siblings("span").andSelf().hide(); } /* 商品分类选择函数 */ function gcategoryInit(divId) { $("#" + divId + " > select").get(0).onchange = gcategoryChange; // select的onchange事件 window.onerror = function(){return true;}; //屏蔽jquery报错 $("#" + divId + " .edit_gcategory").click(gcategoryEdit); // 编辑按钮的onclick事件 } function gcategoryChange() { // 删除后面的select $(this).nextAll("select").remove(); // 计算当前选中到id和拼起来的name var selects = $(this).siblings("select").andSelf(); var id = 0; var names = new Array(); for (i = 0; i < selects.length; i++) { sel = selects[i]; if (sel.value > 0) { id = sel.value; name = sel.options[sel.selectedIndex].text; names.push(name); } } $(this).parent().find(".mls_id").val(id); $(this).parent().find(".mls_name").val(name); $(this).parent().find(".mls_names").val(names.join("\t")); // ajax请求下级分类 if (this.value > 0) { var _self = this; var url = SITEURL + '/index.php?act=index&op=josn_class&callback=?'; $.getJSON(url, {'gc_id':this.value}, function(data){ if (data) { if (data.length > 0) { $("").change(gcategoryChange).insertAfter(_self); var data = data; for (i = 0; i < data.length; i++) { $(_self).next("select").append(""); } } } }); } } function gcategoryEdit() { $(this).siblings("select").show(); $(this).siblings("span").andSelf().remove(); } if(typeof(jQuery.validator.addMethod) == 'function'){//添加自动检测是否是最后一级地区 jQuery.validator.addMethod("checkarea", function(value, element) { return this.optional(element) || (typeof(nc_a[value]) == 'undefined');//当数组不存在时确定选到最后 }, "请选择所在地区"); } function getArea(callback){ if(typeof(nc_a) == 'undefined'){//加载地区数据 var area_scripts_src = ''; area_scripts_src = $("script[src*='jquery.js']").attr("src");//取JS目录的地址 area_scripts_src = area_scripts_src.replace('jquery.js', 'area_array.js'); $.getScript(area_scripts_src,function(){ callback(); return true; }); } else { callback(); } } //显示一级分类下拉框 function show_gc_1(depth,gc_json){ var html = ''; $("#searchgc_td").html(html); } //显示子分类下拉框 function show_gc_2(chooseid,gc_json){ if(gc_json && chooseid > 0){ var childid = gc_json[chooseid].child; if(childid){ var html = ''; $("#searchgc_td").append(html); } } } //初始化商品分类select //chooseid_arr为已选gc_id的json数组 function init_gcselect(chooseid_json,gc_json){ show_gc_1(1,gc_json); if(chooseid_json){ for(var i in chooseid_json){ show_gc_2(chooseid_json[i],gc_json); $('#search_gc_'+i).val(chooseid_json[i]); $('#choose_gcid').val(chooseid_json[i]); } } //商品分类select绑定事件 $("[nc_type='search_gc']").live('change',function(){ $(this).nextAll("[nc_type='search_gc']").remove(); var chooseid = $(this).val(); if(chooseid > 0){ $("#choose_gcid").val(chooseid); show_gc_2(chooseid,gc_json); } else { chooseid = $(this).prev().val(); $("#choose_gcid").val(chooseid); } }); }