(仅IE下有效)关于checkbox 三态
2018-10-15 17:04
                        From:
我们在使用WindowsXP的文件夹属性对话框时,会发现文件夹的Attributes分类里的Read-only和Hidden选项有时不是完全的checked或unchecked状态,而常常是一种虽然已被打勾但背景又是灰色的状态。其实这种不确定的CheckBox状态Web中也是可以表现的。 
在Web页面中,我们可以使用<inputid=chkbtype=CheckBox>来得到一个CheckBox控件。这个控件最常见的形式就是checked(被打上一个勾)或unchecked状态,我们可是使用鼠标点击来轻松的切换这两个状态,同时也可以使用脚本语言来改变它们的状态,比如使用JavaScript脚本: 
chkb.checked=true;或chkb.checked=false; 
下图是CheckBox可以表现的三种状态: 
第一种和第三种很常见,而且它们是可以使用HTML来设置的,就是说我们可以把CheckBox的初始状态通过一个叫checked的html元素的属性来确定。我们这里要说的Indeterminate状态虽然在IE4.0就开始支持了,可是却没有html元素属性来设置其值,而只能使用脚本来设置其Indeterminate状态。 
比如使用JavaScript脚本(indeterminate默认是false): 
注意:CheckBox的indeterminate是一个独立的属性,和CheckBox的checked、status的取值无关,也就是说它只会影响CheckBox的外观显示,我们仍然可以正常的使用脚本读取checked和status的值。 
------------------------------------------------------------------------ 
From:
复制代码 代码如下:
<body> 
<h3>三态的checkbox(变化顺序:未选中->灰色选中->白色选中)</h3><br> 
<formname=test> 
根据onclick变化的checkbox:<br> 
<inputtype=checkboxname=checkbox0flag=0onclick=gray(this)>初始化为未选中的checkbox<br> 
</td><td><inputtype=checkboxname=checkbox1flag=1onclick=gray(this)>初始化为白色选中的checkbox<br> 
</td><td><inputtype=checkboxname=checkbox2flag=2onclick=gray(this)>初始化为灰色选中的checkbox<br> 
根据onpropertychange变化的checkbox:<br> 
<inputtype=checkboxname=checkbox3onpropertychange=gray2(this)>初始化为未选中的checkbox 
</form> 
<scriptlanguage=javascript> 
//用于onclick,需要一个自定义属性flag. 
functiongray(c) 
{ 
switch(c.flag) 
{ 
//当flag为0时,为未选中状态 
//当flag未1时,为白色选中状态 
case2:c.checked=true;c.indeterminate=false;c.flag=1;break; 
//当flag为2时,为灰色选中状态 
case1:c.checked=false;c.indeterminate=false;c.flag=0;break; 
} 
} 
//用于onpropertychange 
functiongray2(c) 
{ 
c.indeterminate=c.checked; 
} 
//用于body的onload,根据checkbox的flag属性判断checkbox的状态 
functioncheck() 
{ 
for(vari=0;i<document.test.elements.length;i++) 
{ 
varele=document.test.elements[i]; 
if(ele.flag!=null) 
{ 
if(ele.flag==0) 
{ 
ele.checked=false; 
ele.indeterminate=false; 
} 
if(ele.flag==1) 
{ 
ele.checked=true; 
ele.indeterminate=false; 
} 
if(ele.flag==2) 
{ 
ele.checked=true; 
ele.indeterminate=true; 
} 
} 
} 
} 
window.onload=check; 
</script> 
                    
文章标题:(仅IE下有效)关于checkbox 三态
文章链接:http://soscw.com/index.php/essay/18254.html