230 lines
7.8 KiB
JavaScript
230 lines
7.8 KiB
JavaScript
/* 多级选择相关函数,如地区选择,分类选择
|
|
* multi-level selection
|
|
*/
|
|
|
|
/* 地区选择函数 */
|
|
function regionInit(divId) {
|
|
var area_id = 0;
|
|
getArea(function(){
|
|
if(typeof(ds_a[area_id]) == 'object' && ds_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' && ds_a[area_id].length > 0){
|
|
var areas = new Array();
|
|
areas = ds_a[area_id];
|
|
$(area_select).append("<option>-请选择-</option>");
|
|
for (i = 0; i <areas.length; i++){
|
|
$(area_select).append("<option value='" + areas[i][0] + "'>" + areas[i][1] + "</option>");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
if(typeof(regionChange) != 'function'){//检测是否已经被定义过,防止重写
|
|
function regionChange(){
|
|
// 删除后面的select
|
|
$(this).nextAll("select").remove();
|
|
// 计算当前选中到id和拼起来的name
|
|
var selects = $(this).siblings("select").andSelf();
|
|
var id = '';
|
|
var name='';
|
|
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(" "));
|
|
|
|
if (this.value > 0){//下级地区
|
|
var area_id = this.value;
|
|
if(typeof(ds_a[area_id]) == 'object' && ds_a[area_id].length > 0){//数组存在
|
|
$("<select></select>").change(regionChange).insertAfter(this);
|
|
areaInit($(this).next("select"),area_id);//初始化地区
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function getArea(callback){
|
|
if(typeof(ds_a) == 'undefined'){//加载地区数据
|
|
var script = document.createElement('script')
|
|
script.src = '/static/plugins/area_datas.js'
|
|
document.body.appendChild(script)
|
|
|
|
script.onload = function () {
|
|
callback()
|
|
}
|
|
} else {
|
|
callback();
|
|
}
|
|
}
|
|
function regionChange() {
|
|
// 删除后面的select
|
|
$(this).nextAll("select").remove();
|
|
// 计算当前选中到id和拼起来的name
|
|
var selects = $(this).siblings("select").andSelf();
|
|
var id = 0;
|
|
var name='';
|
|
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(" "));
|
|
|
|
// ajax请求下级地区
|
|
if (this.value > 0) {
|
|
var _self = this;
|
|
var url = HOMESITEURL + '/Mlselection/index/type/region.html';
|
|
$.getJSON(url, {'pid': this.value}, function (data) {
|
|
if (data.code == 10000) {
|
|
if (data.result.length > 0) {
|
|
$("<select><option>" + '请选择默认' + "</option></select>").change(regionChange).insertAfter(_self);
|
|
var data = data.result;
|
|
for (i = 0; i < data.length; i++) {
|
|
$(_self).next("select").append("<option value='" + data[i].area_id + "'>" + data[i].area_name + "</option>");
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
alert(data.message);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
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 name='';
|
|
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);
|
|
}
|
|
}
|
|
$(".mls_id").val(id);
|
|
$(".mls_name").val(name);
|
|
$(".mls_names").val(names.join("\t"));
|
|
|
|
// ajax请求下级分类
|
|
if (this.value > 0) {
|
|
var _self = this;
|
|
var url = HOMESITEURL + '/Mlselection/index/type/goodsclass.html';
|
|
$.getJSON(url, {'pid': this.value}, function (data) {
|
|
if (data.code == 10000) {
|
|
if (data.result.length > 0) {
|
|
$("<select><option>" + "请选择默认" + "</option></select>").change(gcategoryChange).insertAfter(_self);
|
|
var data = data.result;
|
|
for (i = 0; i < data.length; i++) {
|
|
$(_self).next("select").append("<option value='" + data[i].gc_id + "'>" + data[i].gc_name + "</option>");
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
alert(data.message);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function gcategoryEdit() {
|
|
$(this).siblings("select").show();
|
|
$(this).siblings("span").andSelf().remove();
|
|
}
|
|
|
|
//显示一级分类下拉框
|
|
function show_gc_1(depth,gc_json){
|
|
var html = '<select name="search_gc[]" id="search_gc_0" ds_type="search_gc" class="querySelect">';;
|
|
html += ('<option value="0">请选择...</option>');
|
|
if(gc_json){
|
|
for(var i in gc_json){
|
|
if(gc_json[i].depth == 1){
|
|
html += ('<option value="'+gc_json[i].gc_id+'">'+gc_json[i].gc_name+'</option>');
|
|
}
|
|
}
|
|
}
|
|
html += '</select>';
|
|
$("#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 = '<select name="search_gc[]" id="search_gc_'+gc_json[chooseid].depth+'" ds_type="search_gc" class="querySelect">';;
|
|
html += ('<option value="0">请选择...</option>');
|
|
var childid_arr = childid.split(",");
|
|
if(childid_arr){
|
|
for(var i in childid_arr){
|
|
html += ('<option value="'+gc_json[childid_arr[i]].gc_id+'">'+gc_json[childid_arr[i]].gc_name+'</option>');
|
|
}
|
|
}
|
|
html += '</select>';
|
|
$("#searchgc_td").append(html);
|
|
}
|
|
}
|
|
}
|
|
var global_gc_json;
|
|
function init_gcselect(chooseid_json, gc_json) {
|
|
global_gc_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绑定事件
|
|
$("[ds_type='search_gc']").on('change', function () {
|
|
$(this).nextAll("[ds_type='search_gc']").remove();
|
|
var chooseid = $(this).val();
|
|
if (chooseid > 0) {
|
|
$("#choose_gcid").val(chooseid);
|
|
show_gc_2(chooseid, global_gc_json);
|
|
} else {
|
|
chooseid = $(this).prev().val();
|
|
$("#choose_gcid").val(chooseid);
|
|
}
|
|
});
|
|
}
|