xoption.js

来自「OA.....其他人不需帐号就可自由下载此源码其他人不需帐号就可自由下载此源码」· JavaScript 代码 · 共 90 行

JS
90
字号

function initializeXslt() {
	var root = document.all.xoption.documentElement;
	var main = root.firstChild;
	changeOption(main);
}

//根据结点,更改该结点对应的select
//参数中的def优先级将高于xslt中的default
function changeOption(node,def) {
	if(!node)
		return;
	var select = node.getAttribute("select");
	var defaultValue = node.getAttribute("def");
	if(def=="" || def==null || def==undefined)
		def = defaultValue;

	var f = document.getElementById(select);
	f.length = 0;
	f.onchange = function() {
		var op = f.options[f.selectedIndex];
		var target = op.getAttribute("target");
		if(target!=null && target!="") {
			var array = target.split(",");
			for(var k=0;k<array.length;k++) {
				var s = array[k];
				if(s.indexOf("|")!=-1) {
					var a = s.substring(0,s.indexOf("|"));
					var b = s.substring(s.indexOf("|")+1);
					changeSelect(a,b);
				}else
					changeSelect(s);
			}
		}
	};
	if(node.hasChildNodes()) {
		for(var i=0;i<node.childNodes.length;i++) {
			var temp = node.childNodes[i];

			var value = temp.getAttribute("value");
			var text = temp.getAttribute("text");
			var target = temp.getAttribute("target");

			var op = document.createElement("option");
			op.setAttribute("value",value);
			op.setAttribute("target",target);
			op.appendChild(document.createTextNode(text));
			
			var selected = false;
			if(def!=null && def==value)
				selected = true;
			else
				selected = false;

			if(selected) {
				op.selected = true;
				if(target!=null && target!="") {
					var array = target.split(",");
					for(var k=0;k<array.length;k++) {
						var s = array[k];
						if(s.indexOf("|")!=-1) {
							var a = s.substring(0,s.indexOf("|"));
							var b = s.substring(s.indexOf("|")+1);
							changeSelect(a,b);
						}else
							changeSelect(s);
					}
				}
			}
			
			f.appendChild(op);
		}
	
	}
}

//控制被关联的select变化
function changeSelect(xsltId,def) {
	var root = document.all.xoption.documentElement;
	if(root.hasChildNodes()) {
		for(var i=0;i<root.childNodes.length;i++) {
			var temp = root.childNodes[i];
			var id = temp.getAttribute("id");
			if(id == xsltId) {
				changeOption(temp,def);
				break;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?