|
- //选择地区的二级分类
- function selNext(oj, v) {
- var newobj = oj.options;
- var selv = parseInt(v);
- var maxv = parseInt(v) + 500;
- while (newobj.length > 0) {
- oj.remove(0);
- }
- clear(oj);
- if (selv == 0) {
- aOption = document.createElement('OPTION');
- aOption.text = '具体地区';
- aOption.value = '0';
- oj.options.add(aOption);
- return;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = '具体地区';
- aOption.value = '0';
- oj.options.add(aOption);
- }
- var str = '';
- for (i = selv + 1; i < maxv; i++) {
- if (!em_nativeplaces[i]) continue;
- aOption = document.createElement('OPTION');
- aOption.text = em_nativeplaces[i];
- aOption.value = i;
- oj.options.add(aOption);
- }
- }
- //子类改变事件
- function ChangeSon() {
- //由于支持3级联动,所以这里需要对自己改变进行重构
- var emname = this.name.replace('_son', '');
- if (document.getElementById(emname + '_sec')) {
- var oj = document.getElementById(emname + '_sec');
- } else {
- var oj = document.createElement('select');
- oj.name = emname + '_sec';
- oj.id = emname + '_sec';
- oj.className = "form-control admin-input-sm mr-2";
- oj.onchange = ChangeSec;
- }
- var v = this.options[this.selectedIndex].value;
- document.getElementById('hidden_' + emname).value = v;
- var newobj = oj.options;
- var selarr = eval('em_' + emname + 's');
- var selv = parseInt(v);
- var maxv = parseInt(v) + 0.5;
- i = 0;
- while (newobj && newobj.length > 0) oj.remove(0);
- clear(oj);
- if (selv == 0) {
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = '0';
- oj.options.add(aOption);
- return;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = '0';
- oj.options.add(aOption);
- }
- var str = '';
- var j = 0;
- for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- oj.options.add(aOption);
- j++;
- }
- if (j > 0) {
- document.getElementById('span_' + emname + '_sec').appendChild(oj);
- document.getElementById('span_' + emname + '_sec').style.display = "initial"
- } else {
- document.getElementById('span_' + emname + '_sec').innerHTML = "";
- }
- }
- //改变第三级的事件
- function ChangeSec() {
- var emname = this.name.replace('_sec', '');
- var topSelObj = document.getElementById(emname + '_top');
- if (this.options[this.selectedIndex].value == 0) {
- document.getElementById('hidden_' + emname).value = topSelObj.options[topSelObj.selectedIndex].value;
- } else {
- document.getElementById('hidden_' + emname).value = this.options[this.selectedIndex].value;
- }
- }
- //顶级类改变事件
- function selNextSon() {
- var emname = this.name.replace('_top', '');
- if (document.getElementById(emname + '_son')) {
- var oj = document.getElementById(emname + '_son');
- } else {
- var oj = document.createElement('select');
- oj.name = emname + '_son';
- oj.id = emname + '_son';
- oj.className = "form-control admin-input-sm mr-2";
- oj.onchange = ChangeSon;
- }
- var v = this.options[this.selectedIndex].value;
- document.getElementById('hidden_' + emname).value = v;
- if (v < 500) {
- return
- }
- var newobj = oj.options;
- var selarr = eval('em_' + emname + 's');
- var selv = parseInt(v);
- var maxv = parseInt(v) + 500;
- while (newobj && newobj.length > 0) oj.remove(0);
- clear(oj);
- if (selv == 0) {
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = '0';
- oj.options.add(aOption);
- return;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = '0';
- oj.options.add(aOption);
- }
- var str = '';
- var count = 0;
- for (i = selv + 1; i < maxv; i++) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- oj.options.add(aOption);
- count = count + 1;
- }
- if (count > 0) {
- document.getElementById('span_' + emname + '_son').style.display = "initial"
- document.getElementById('span_' + emname + '_son').appendChild(oj);
- } else {
- document.getElementById('span_' + emname + '_son').style.display = "none"
- }
-
- }
- //根据数组生成多级联动菜单
- function MakeTopSelect(emname, selvalue) {
- var selectFormHtml = '';
- var aOption = null;
- var selObj = document.createElement("select");
- selObj.name = emname + '_top';
- selObj.id = emname + '_top';
- selObj.className = "form-control admin-input-sm mr-2";
- selObj.onchange = selNextSon;
- var selarr = eval('em_' + emname + 's');
- var topvalue = 0;
- var sonvalue = 0;
- var secvalue = 0;
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = 0;
- selObj.options.add(aOption);
- var fkey = Object.keys(selarr)[0];
- if (fkey >= 500) {
- if (selvalue % 500 == 0) {
- topvalue = selvalue;
- }
- //如果是小数,则依次取出顶级数值,二级数值以及三级数值
- else if (!!(selvalue % 1)) {
- secvalue = selvalue;
- sonvalue = Math.floor(selvalue);
- topvalue = sonvalue - (sonvalue % 500);
- //alert(secvalue);
- } else {
- sonvalue = selvalue;
- topvalue = selvalue - (selvalue % 500);
- }
- for (i = 500; i <= selarr.length; i += 500) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- if (i == topvalue) {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- aOption.selected = true;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- }
- }
-
- document.getElementById('span_' + emname).appendChild(selObj);
- //如果子类存在值,创建子类
- selObj = document.createElement("select");
- selObj.name = emname + '_son';
- selObj.id = emname + '_son';
- selObj.className = "form-control admin-input-sm mr-2";
- selObj.onchange = ChangeSon;
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- aOption.value = 0;
- selObj.options.add(aOption);
- //当大类有值输出子类
- if (topvalue > 0) {
- var selv = topvalue;
- var maxv = parseInt(topvalue) + 500;
- var count = 0;
- for (i = selv + 1; i < maxv; i++) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- if (i == sonvalue) {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- aOption.selected = true;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- }
- count = count + 1;
- }
- }
- if (count > 0) {
- document.getElementById('span_' + emname + '_son').style.display = "initial";
- document.getElementById('span_' + emname + '_son').appendChild(selObj);
- } else {
- document.getElementById('span_' + emname + '_son').style.display = "none";
- }
-
- //若存在第三级则创建
- if (secvalue > 0) {
- selObj = document.createElement("select");
- selObj.name = emname + '_sec';
- selObj.id = emname + '_sec';
- selObj.onchange = ChangeSec;
- aOption = document.createElement('OPTION');
- aOption.text = '请选择..';
- selObj.className = "form-control admin-input-sm mr-2";
- aOption.value = 0;
- selObj.options.add(aOption);
- var selv = sonvalue;
- var maxv = parseInt(sonvalue) + 0.5;
- i = 0;
- var count = 0;
- for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- if (i == secvalue) {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- aOption.selected = true;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- }
- count = count + 1;
- }
- }
- if (count > 0) {
- document.getElementById('span_' + emname + '_sec').style.display = "initial";
- document.getElementById('span_' + emname + '_sec').appendChild(selObj);
- } else {
- document.getElementById('span_' + emname + '_sec').style.display = "none";
- }
- } else {
- for (i = 0; i <= selarr.length; i += 1) {
- if (!selarr[i]) continue;
- aOption = document.createElement('OPTION');
- if (i == selvalue) {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- aOption.selected = true;
- } else {
- aOption = document.createElement('OPTION');
- aOption.text = selarr[i];
- aOption.value = i;
- selObj.options.add(aOption);
- }
- }
- document.getElementById('span_' + emname).appendChild(selObj);
- }
-
- }
- //两个小数相加进度计算
- function FloatAdd(arg1, arg2) {
- var r1, r2, m;
- try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
- try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
- m = Math.pow(10, Math.max(r1, r2))
- return (arg1 * m + arg2 * m) / m
- }
- //清除旧对象
- function clear(o) {
- l = o.length;
- for (i = 0; i < l; i++) {
- o.options[1] = null;
- }
- }
|