Script

本类阅读TOP10

·一个简单的javascript菜单
·网站流量统计代码
·可编辑的 HTML JavaScript 表格控件 DataGrid II
·JavaScript通用库(一)
·在网页中控制wmplayer播放器
·层遇到select框时
·TYPEING TEST ON LINE 在线打字测试 Free Software Javascript (aiiiq)
·javascript表单之间的数据传递!
·让网页自动穿上外套
·搜索gb2312汉字在网上的频率

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
两个可以半选的checkbox

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

(一) 用图片模拟
用到的三个图片如下:
0.gif:
1.gif:
2.gif:
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>三态的checkbox</title>
<script language="javascript">
//预载图片
var notChkImg = new Image(); //没有选中
notChkImg.src = "images/0.gif"
var halfChkImg = new Image();//半选中
halfChkImg.src = "images/1.gif"
var chkImg = new Image(); //选中
chkImg.src = "images/2.gif"


function myHalfCheckBox(img,obj)

/*
参数说明
img 模拟的图片
obj 可以提交的那个checkbox
img.checkedState 表示选中的状态,0,1,2分别表示没有选中,半选中,全选中
在半选中的状态obj的值是以halfChecked__开头的,需要截去前面的"halfChecked__"才是真正的值
*/
{
if(img.src.indexOf("0.gif")>0) //没有选中的状态
{
img.src = halfChkImg.src;
obj.checked = true;
obj.value = "halfChecked__" + img.value
img.checkedState = 1;

}else if(img.src.indexOf("1.gif")>0) //半选中的状态
{
img.src = chkImg.src;
obj.disabled = false;
obj.checked = true;
obj.value = img.value
img.checkedState = 2;

}else //选中的状态
{
img.src = notChkImg.src;
obj.disabled = false;
obj.checked = false;
obj.value = img.value
img.checkedState = 0;
}

}
</script>
</head>

<body>
<img id=img1 src="images/0.gif" width="16" height="16" onClick="myHalfCheckBox(this,submitChkbox)" checkedState="0" value="test">
<input style="display:none" type="checkbox" name="submitChkbox" value="test">
<input type="button" value="得到选中的状态" onclick="alert(img1.checkedState)">
<input type="button" value="得到选中的值" onclick="alert(img1.value)">
<input type="button" value="得到隐藏的checkbox的值" onclick="alert(submitChkbox.value)">

</body>
</html>

(二)用checkbox上覆盖一个透明的层来实现
 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<script language="JavaScript" type="text/JavaScript">
<!--
function myHalfCheckBox(obj) {
  if(obj.disabled) //半选中状态
 {
  obj.disabled = false;   //设置为选中的状态
 }else if(obj.checked)//选中状态
 {
  obj.checked = false; //设置为没有选中的状态
 }else  //没有选中的状态
 {
  obj.disabled = true;   //设置为半选中状态
  obj.checked = true;  
 }
}
//-->
</script>
</head>

<body>
<div id="idDiv" onClick="myHalfCheckBox(halfChkBoxTest)" onselectstart='return false;' style="position:absolute; cursor:default;left:12px; top:11px; width:16px; height:19px; z-index:1;filter : progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=0,finishOpacity=100);">
  <table width="100%" height="100%"  border="0">
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
</div>
<input name="halfChkBoxTest" type="checkbox" value="1">
</body>
</html>


(三)其他的一些思路,代码没有写
1)用input type="image"来模拟,和用图片差不多。

2)用用text来模拟。主要思路是在选中状态设置text的value为“∨”,在半选中状态通过修改text的字体的样式来表示,没有选中状态设置text为空,我在CSDN上有个帖子中有个用用text模拟的 checkbox的例子。

3)如果你不闲麻烦的话在IE5+中通过VML自己来画,呵呵,有点夸张。




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有