在checkbox中,我们常用的是他的两态,即通过checked属性的true或false控制的checked状态和unchecked状态,实际它还有第三种状态,即“不确定的状态”indeterminate。
checked属性来决定选择框是否被勾选,而indeterminate决定选择框是是否是不确定的(true是选择框会变灰白色)。
三态的checkbox(变化顺序:未选中->灰色选中->白色选中)
<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