(仅IE下有效)关于checkbox 三态

2016-02-19 09:34 14 1 收藏

下面是个(仅IE下有效)关于checkbox 三态教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

From:http://www.cnblogs.com/birdshome/archive/2005/01/03/85679.html 
    我们在使用Windows XP的文件夹属性对话框时,会发现文件夹的Attributes分类里的Read-only和Hidden选项有时不是完全的checked或unchecked状态,而常常是一种虽然已被打勾但背景又是灰色的状态。其实这种不确定的CheckBox状态Web中也是可以表现的。  

    在Web页面中,我们可以使用input id="chkb" type="CheckBox"来得到一个CheckBox控件。这个控件最常见的形式就是checked(被打上一个勾)或unchecked状态,我们可是使用鼠标点击来轻松的切换这两个状态,同时也可以使用脚本语言来改变它们的状态,比如使用JavaScript脚本: 
chkb.checked = true; 或 chkb.checked = false;
下图是CheckBox可以表现的三种状态:
   
第一种和第三种很常见,而且它们是可以使用HTML来设置的,就是说我们可以把CheckBox的初始状态通过一个叫checked的html元素的属性来确定。我们这里要说的Indeterminate状态虽然在IE4.0就开始支持了,可是却没有html元素属性来设置其值,而只能使用脚本来设置其Indeterminate状态。 

    比如使用JavaScript脚本(indeterminate默认是false): 

chkb.indeterminate = true; 或 chkb.indeterminate = false; 

    注意:CheckBox的indeterminate是一个独立的属性,和CheckBox的checked、status的取值无关,也就是说它只会影响CheckBox的外观显示,我们仍然可以正常的使用脚本读取checked和status的值。 
------------------------------------------------------------------------
From:http://www.itbody.com/doc/Html/WEB/105537297.html
代码如下:

body
h3三态的checkbox(变化顺序:未选中-灰色选中-白色选中)/h3br
form name=test
根据onclick变化的checkbox:br
 input type=checkbox name=checkbox0 flag=0 onclick='gray(this)'初始化为未选中的checkboxbr
 /tdtdinput type=checkbox name=checkbox1 flag=1 onclick='gray(this)'初始化为白色选中的checkboxbr
 /tdtdinput type=checkbox name=checkbox2 flag=2 onclick='gray(this)'初始化为灰色选中的checkboxbr
根据onpropertychange变化的checkbox:br
 input type=checkbox name=checkbox3 onpropertychange='gray2(this)'初始化为未选中的checkbox
/form
script language=javascript
//用于onclick,需要一个自定义属性flag.
function gray(c)
{
 switch(c.flag)
 {
 //当flag为0时,为未选中状态
 case '0':c.checked=true;c.indeterminate=true;c.flag='2';break;
 //当flag未1时,为白色选中状态
 case '2':c.checked=true;c.indeterminate=false;c.flag='1';break;
 //当flag为2时,为灰色选中状态
 case '1':c.checked=false;c.indeterminate=false;c.flag='0';break;
 }
}
//用于onpropertychange
function gray2(c)
{
 c.indeterminate=c.checked;
}
//用于body的onload,根据checkbox的flag属性判断checkbox的状态
function check()
{
 for(var i = 0;idocument.test.elements.length;i++)
 {
 var ele = 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



来源:http://www.tulaoshi.com/n/20160219/1591276.html

延伸阅读
标签: 怀孕
大多数女性都是第一次怀孕,怀了小宝宝的你可能会受到家中亲人的格外关注,尤其是头三个月的保胎任务,可是怎样才是正确的保胎呢?妈妈们最担心的是一点点的流血迹象都是流产?事实是不是这样呢?一起来看看怀孕保胎的三问三答。 并非人人都需要保胎 “保胎”顾名思义是保护胎儿,使之健康发育,避免流产。因此,对于健康发育的胎儿来说...
标签: Web开发
     最近做一个公司的业务系统,公司要求能尽可能的与c/s近似,也就是如c/s一样,点击文本框可以弹出此项目的相关内容,进行选择输入。      我使用了弹出窗口,然后在子窗口双击选中项目,把选中的值返回给父窗体。      在系统做完了之后,在客户使用的过程,由于客户使用的是...
标签: 除皱
眼下有细纹怎么办 眼下有细纹怎么办 1 第一:涂眼霜,不过眼霜要选择好一点的哦,不然眼睛下长脂肪粒的时候你就明白了。现在还来得及,要是演变成真正的眼角纹就涂什么都消不掉了。平时注意保养皮肤,多做做面膜,或者多按摩眼周围,使皮肤血液循环,都有助于消除小细纹。 ...
代码如下: public class MainActivity extends Activity {  TextView tv;  CheckBox cb1;  CheckBox cb2;  @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   cb1 = (CheckBo...
标签: 女人养生
养生晚班车 仅需三招做白嫩睡美人 晚上的睡眠,是我们一天当中最重要的事情,然而爱美的女性朋友们应该都知道,睡眠我们的容颜保养是非常重要的,充分的睡眠可以促进皮肤细胞的分裂,保持活力,可以让我们的皮肤焕发光彩,减少皱纹,淡化黑眼圈,更加年轻,实现逆生长的可能,让肌肤在夜晚的睡眠里得到更好的保养。 ...

经验教程

198

收藏

80
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部