[原创]三态的checkbox

王朝html/css/js·作者佚名  2006-12-17
宽屏版  字体: |||超大  

[原创]三态的checkbox

[原创]三态的checkbox <body onload=check()>

<h3>三态的checkbox(变化顺序:未选中->灰色选中->白色选中)</h3><br>

<form name=test>

根据onclick变化的checkbox:<br>

&nbsp;<input type=checkbox name=checkbox0 flag=0 onclick='gray(this)'>初始化为未选中的checkbox<br>

&nbsp;</td><td><input type=checkbox name=checkbox1 flag=1 onclick='gray(this)'>初始化为白色选中的checkbox<br>

&nbsp;</td><td><input type=checkbox name=checkbox2 flag=2 onclick='gray(this)'>初始化为灰色选中的checkbox<br>

根据onpropertychange变化的checkbox:<br>

&nbsp;<input type=checkbox name=checkbox3 onpropertychange='gray2(this)'>初始化为未选中的checkbox

</form>

</body>

<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;i<document.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;

}

}

}

}

</script>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有