⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select.js

📁 access+asp.net还行吧
💻 JS
字号:
selectObjs = false;
curSelectObj = null;
window.onresize = TryAdjustSelect;
setTimeout("SetOnFocusToHideSelect();",500);

function SetOnFocusToHideSelect()
{
	if(document.body == null) return;
	var obj;
	var i;
	if (document.all){
		document.body.onfocus = TryHideSelect;
		obj = document.all.tags("TABLE");
		for (i=0;i<obj.length;i++){
			obj.item(i).onfocus = TryHideSelect;
		}
		obj = document.all.tags("TD");
		for (i=0;i<obj.length;i++){
			obj.item(i).onfocus = TryHideSelect;
		}
		obj = document.all.tags("A");
		for (i=0;i<obj.length;i++){
			obj.item(i).onfocus = TryHideSelect;
		}
	}
}

function RegisterSelect(selobj)
{
	if (!selectObjs)
		selectObjs = new Array();
	selectObjs[selectObjs.length] = selobj;
}

function TryAdjustSelect()
{
	if (selectObjs){
		for (i=0;i<selectObjs.length;i++)
			if (selectObjs[i].visible){
				CalcSelectPosition(selectObjs[i]);
			}
	}
}

function TSelectObject(formVarH,formVarV,idOn,idOff,selectedIndex,nItems,arrSource,strFuncName,selTable)
{
	this.formVarH = formVarH;
	this.formVarV = formVarV;
	this.idOn = idOn;
	this.idOff = idOff;
	this.selectedIndex = selectedIndex;
	this.visible = false;
	this.nItems = nItems;
	this.arrSource = arrSource;
	this.strFuncName = strFuncName;
	this.disabled = false;
	this.selTable = selTable;
	return this;
}

function ToggleSelect(selobj)
{
	if (selobj.disabled) return;
	if (selobj.visible)
		HideSelect(selobj);
	else
		ShowSelect(selobj);
	return;
}

function HighlightOption(selobj,i)
{
	NormalOption(selobj,selobj.selectedIndex);
	var obj = document.all[selobj.idOn+"_"+i];
	if(obj == null) return;
	obj.style.backgroundColor = "#113399";
	obj.style.color = "#ffffff";
}

function NormalOption(selobj,i)
{
	var obj = document.all[selobj.idOn+"_"+i];
	if(obj == null) return;
	obj.style.backgroundColor = "#f0f0f0";
	obj.style.color = "#000";
}

function OptionClicked(selobj,idx,val)
{
	var obj = document.all[selobj.idOn+"_"+idx];
	var vstr = obj.innerText;
	vstr = vstr.replace(/^( )+/,"");
	var formObj=null;

	formObj = FindFormByVarName(selobj.formVarH);
	if (formObj!=null){
		eval("formObj."+selobj.formVarV+".value = vstr;");
		eval("formObj."+selobj.formVarH+".value = val;");
	}
	else{
		document.all[selobj.formVarH].value = val;
		document.all[selobj.formVarV].value = vstr;
	}
	selobj.selectedIndex = idx;
	HideSelect(selobj);
}

function CalcSelectPosition(selobj)
{
	if (document.all){
		var obj = document.all[selobj.idOff];
		var left = 0;
		var top = 0;
		for (; obj!=document.body; obj=obj.offsetParent){
		if(obj.tagName=="DIV"){
//			alert(obj.name);
		}
		if(obj.tagName!="DIV"){
			left += obj.offsetLeft;
			top  += obj.offsetTop;
		}
		}
		obj = document.all[selobj.idOn].style;
		obj.pixelLeft = left;
		obj.pixelTop = top+document.all[selobj.idOff].offsetHeight+1;
		obj.pixelWidth = document.all[selobj.idOff].offsetWidth;
		if (selobj.nItems<=10){
			obj.pixelHeight = selobj.nItems*16+2;
			obj.overflow = "visible";
		}
		else{
			obj.pixelHeight = 10*16+2;
			obj.overflow = "auto";
		}
	}
}

function PreShowSelect(selobj)
{
	obj = document.all[selobj.idOn].style;
	obj.overflow = "hidden";
}

function ShowSelect(selobj)
{
	if (document.all){
		if (curSelectObj!=null)
			HideSelect(curSelectObj);
		selobj.visible = true;
		document.all[selobj.idOn].style.visibility="visible";
		CalcSelectPosition(selobj);
		HighlightOption(selobj,selobj.selectedIndex);
		curSelectObj = selobj;
	}
}

function HideSelect(selobj)
{
	if (document.all){
		obj = document.all[selobj.idOn].style;
		obj.visibility="hidden";
		selobj.visible = false;
		curSelectObj = null;
	}
}

function DelayHideSelect(objname)
{
	setTimeout("HideSelect("+objname+");",200);
}

function TryHideSelect()
{
	if (curSelectObj!=null)
		HideSelect(curSelectObj);
}

function FindFormByVarName(vname)
{
	for (i=0;i<document.forms.length;i++){
		if (document.forms[i].all[vname]!=null)
			return document.forms[i];
	}
	return null;
}

function CreateSelect(strName,strTitle,arrSource,intChecked,strFuncName,intSize)
{
	var defValue,defName;
	if(arrSource.length == 0){
		defValue = "";
		defName = "";
	}
	else
	{
		defValue = arrSource[intChecked][0];
		defName = arrSource[intChecked][1];
	}
	
	if(strFuncName == null){
		strFuncName = "";
	}
	
	if(String(strFuncName).indexOf("(") == -1 && strFuncName != "")
		strFuncName = strFuncName + "()";
		
	if(strFuncName != ""){
		strFuncName = strFuncName + ";";
	}
	
	var selTable;
	selTable = "seltable_" + strName;
	document.write("<TABLE cellSpacing=0 cellPadding=0 border=0 id = " + selTable + "><TBODY>");
	document.write("<TR>");
	if(strTitle != "")
		document.write("<TD class=ttTable noWrap>" + strTitle + "</TD>");
	document.write("<TD noWrap>");
	var seloff,selvarV,selon,selobj,selName;
	seloff = "seloff_" + strName;
	selvarV = "selvarV_" + strName;
	selon = "selon_" + strName;
	selobj = "selobj_" + strName;
	selName = strName;
	document.write("<DIV class=selectOff id=" + seloff + " onclick=ToggleSelect(" + selobj + ");>");
	document.write("<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>");
	document.write("<TR><TD>");
	if(intSize == null){
		document.write("<INPUT class=ednonedisable style=\"cursor: pointer\" readonly value=\"" + defName + "\" name=" + selvarV + "></TD>");
	}
	else{
		document.write("<INPUT class=ednonedisable style=\"cursor: pointer\" readonly size= " + intSize + " value=\"" + defName + "\" name=" + selvarV + "></TD>");
	}
	document.write("<TD width=\"1%\"><IMG style=\"cursor: pointer\" src=\"images/arrow_down.gif\" border=0></TD>");
	document.write("</TR></TBODY></TABLE>");
	document.write("</DIV>");
	document.write("<DIV class=selectOn id=" + selon + " onblur=\"DelayHideSelect('" + selobj + "');\">");
	var i;
	for(i=0;i<arrSource.length;i++){
		document.write("<DIV class=selectItem id=" + selon + "_" + i + " onmouseover=HighlightOption(" + selobj + "," + i + "); onclick=\"OptionClicked(" + selobj + "," + i + ",'" + arrSource[i][0] + "');" + strFuncName + "\" onmouseout=NormalOption(" + selobj + "," + i + ");>" + arrSource[i][1] + "</DIV>");
	}
	document.write("</DIV>");
	document.write("<INPUT type=hidden value=\"" + defValue + "\" name=" + selName + ">");
	document.write("</TD>");
	document.write("</TR>");
	document.write("</TBODY></TABLE>");
	eval(selobj + "= new TSelectObject('" + selName + "','" + selvarV + "','" + selon + "','" + seloff + "',intChecked,arrSource.length,arrSource,strFuncName,selTable);");
	eval("RegisterSelect(" + selobj + ");");
	return selobj;
}

function getValue(selobj,intShow)
{
	var strValue;

	var varV,varH;
	eval("varV = " + selobj + ".formVarV;");
	eval("varH = " + selobj + ".formVarH;");
	if(intShow == 1){
		strValue = document.all(varV).value;
	}
	else{
		strValue = document.all(varH).value;
	}

	return strValue;
}

function setValue(selobj,strValue,intShow)
{
	var arrSource;
	eval("arrSource = " + selobj + ".arrSource;");
	
	if(arrSource.length == 0) return;
	
	var i;
	if(intShow == 1){
		for(i=0;i<arrSource.length;i++){
			if(arrSource[i][1] == strValue){
				break;
			}
		}
	}
	else{
		for(i=0;i<arrSource.length;i++){
			if(arrSource[i][0] == strValue){
				break;
			}
		}
	}
	if(i==arrSource.length){
		i = 0;
	}
	
	var varV,varH;
	eval("varV = " + selobj + ".formVarV;");
	eval("varH = " + selobj + ".formVarH;");
	document.all(varV).value = arrSource[i][1];
	document.all(varH).value = arrSource[i][0];
	
	eval(selobj + ".selectedIndex = i;");
}

function resetValue(selobj,arrSource,intChecked)
{
	var selon,strFuncName;

	eval("selon = " + selobj + ".idOn;")
	eval("strFuncName = "+selobj+".strFuncName;");

	var i;
	var strHTML;
	strHTML = "";
	for(i=0;i<arrSource.length;i++){
		strHTML = strHTML + "<DIV class=selectItem id=" + selon + "_" + i + " onmouseover=HighlightOption(" + selobj + "," + i + "); onclick=\"OptionClicked(" + selobj + "," + i + ",'" + arrSource[i][0] + "');" + strFuncName + "\" onmouseout=NormalOption(" + selobj + "," + i + ");>" + arrSource[i][1] + "</DIV>";
	}
	eval("document.all(\"" + selon + "\").innerHTML = strHTML;");

	eval(selobj + ".arrSource = arrSource;");
	if(intChecked == null) intChecked = 0;
	setValue(selobj,arrSource[intChecked][0]);
}

function clearValue(selobj)
{
	var selon;

	eval("selon = "+selobj+".idOn;");
	eval("document.all(\"" + selon + "\").innerHTML = \"\";");
	var varV,varH;
	eval("varV = " + selobj + ".formVarV;");
	eval("varH = " + selobj + ".formVarH;");
	document.all(varV).value = "";
	document.all(varH).value = "";

	var arrSource = new Array();
	eval(selobj + ".arrSource = arrSource;");
}

function setEnable(selobj,blnEnabled)
{
	eval(selobj + ".disabled = !blnEnabled;");
}

function setVisible(selobj,blnVisible)
{
	var seltable;
	eval("seltable = " + selobj + ".selTable;");
	
	if(blnVisible){
		document.all(seltable).style.visibility = "visible";
	}
	else{
		document.all(seltable).style.visibility = "hidden";
	}
}

function setDisplay(selobj,blnDisplay)
{
	var seltable;
	eval("seltable = " + selobj + ".selTable;");
	
	if(blnDisplay){
		document.all(seltable).style.display = "";
	}
	else{
		document.all(seltable).style.display = "none";
	}
}

function getLength(selobj)
{
	var arrSource;
	eval("arrSource = " + selobj + ".arrSource;");
	return arrSource.length;
}

function insertValue(selobj,strValue,strShowValue)
{
	var arrSource;
	eval("arrSource = " + selobj + ".arrSource;");
	var i;
	i = arrSource.length;
	arrSource[i] = new Array();
	arrSource[i][0] = strValue;
	arrSource[i][1] = strShowValue;
	resetValue(selobj,arrSource);
}

function getEnable(selobj)
{
	var blnEnabled;
	eval("blnEnabled = !" + selobj + ".disabled;");
	return blnEnabled;
}

⌨️ 快捷键说明

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