Js多选面板

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> 多选面板 </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script language="JavaScript">
<!--
	showSelectorWin = function(obj,pros) {
		div = document.getElementById('div_' + obj.id);

	    if (div != null && div != 'undefined')
	    {
			div.style.display = 'block';
	    }
		else {
			div = document.createElement('div');
			div.setAttribute('id','div_' + obj.id);
			div.style.width = pros.width;
			div.style.height = pros.height;
			div.style.border = pros.border;
			div.style.background = pros.background;
			div.style.top = event.y-parseInt(obj.style.height)/2;
			div.style.left = event.x-parseInt(obj.style.width)/2>0?event.x-parseInt(obj.style.width)/2:0;
			div.style.display = 'block';
			div.style.position = 'absolute';
	
			var tbl = "<table id = 'selectTab' border=0 cellspacding=0 cellpadding=0 width="+pros.width+">";
			var ind = 0;
			var span = document.getElementById(pros.optsId);
			if (span)
			{
				var opts = span.childNodes;
				for (var i=0;i<opts.length ;i++ )
				{
					if (opts[i].nodeType == 1)
					{
						var chb = opts[i];
					
						if (chb)
						{
							if (i % pros.oneRowSize == 0)
							{
								tbl += "<tr>";
							}
							var chbText = opts[i+1].nodeValue;//input元素后的文本
							tbl += "<td><input type='checkbox' value='" + chb.value + "'>" + chbText +"</td>";
							ind++;
							if (ind == 3)
							{
								tbl += "</tr>";
								ind = 0;
							}
						}
					}
					
				}
			}
			tbl += "<tr align='center'><td colspan=3><input type='button' value='确定' οnclick=setVal('"+obj.id+"');></td></tr>";
			tbl += "</table>";
			div.innerHTML = tbl;
			document.body.appendChild(div);
		}

	}
	
	// 用于配置显示的选择面板的样式
	Pros = function() {
		this.width = '120px';//要显示的选择面板的宽度
		this.height = '100px';// 要显示的选择面板的高度
		this.border = '';// 选择面板边框样式
		this.background = 'white'; 选择面板背景
		this.oneRowSize = 3; // 1行显示的checkbox数目
		this.optsId = 'multiSelectSpan';//将所有的checkbox元素都放入span,作为多选的checkbox
	}

	setVal = function(id) {
		var retVal = "";
		var tab = document.getElementById('selectTab');
		var rows = tab.rows;
		for (var i=0;i<rows.length-1 ; i++)
		{
			var tr = tab.rows[i];
			for (var j=0;j<tr.cells.length ;j++ )
			{
				var td = tr.cells[j];
				var chexbox = td.firstChild;
				if (chexbox.checked)
				{
					retVal += chexbox.value + ",";
				}
				
			}
		}

		var div = document.getElementById('div_' + id);
		div.style.display = 'none';
		retVal = retVal.substring(0,retVal.lastIndexOf(','));
		alert('你选择了' + retVal);
		return retVal;
		
	}
	init = function(e,obj) {
		var pros = new Pros();
		pros.width = '200px';//要显示的选择面板的宽度
		pros.height = '120px';// 要显示的选择面板的高度
		pros.border = '1px solid yellow';// 选择面板边框样式

		showSelectorWin(obj,pros);
	}
//-->
</script>
</head>

<body>
选择技术:
<input name="i_ts_desc" id="i_ts_desc" style='width:120px;height:20px;' οnclick="init(event,this);">
<span id='multiSelectSpan' style="display:none">
	<input type='hidden' name='select' value='Java'>Java
	<input type='hidden' name='select' value='C'>C
	<input type='hidden' name='select' value='C++'>C++
	<input type='hidden' name='select' value='C#'>C#
	<input type='hidden' name='select' value='Jsp'>Jsp
	<input type='hidden' name='select' value='Php'>Php
	<input type='hidden' name='select' value='Vb'>Vb
	<input type='hidden' name='select' value='Linux'>Linux
	<input type='hidden' name='select' value='Js'>Js
</span>
<br>
*******************************************************************************<br>
单击文本框,显示一个多选面板。<br>
用法:<br>
1.在body中写一个span,id为multiSelectSpan(可以在init()函数中修改id)<br>
2.在span中写入需要作为多选项的隐藏域。如上面的multiSelectSpan<br>
3.在Init()函数中配置显示的面板样式(width,height,border等)<br>
4.在body中添加一个input控件,加入Onclick事件=init(event,this),如:<br>
<code><input name="i_ts_desc" id="i_ts_desc" style='width:120px;height:20px;' οnclick="init(event,this);"></code><br>
5.单击面板中的“确定”按钮后,调用setVal()函数,返回选择的项的值。<br>
*******************************************************************************
</body>
</html>

转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值