[原创]三态的checkbox

来源:互联网 发布:北京海星数据 编辑:程序博客网 时间:2024/05/16 17:47
导读:
  
  

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



  

  根据onclick变化的checkbox:

   初始化为未选中的checkbox

   初始化为白色选中的checkbox

   初始化为灰色选中的checkbox

  根据onpropertychange变化的checkbox:

   初始化为未选中的checkbox
  

  
  
  //用于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  {
  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;
  }
  }
  }
  }
  
本文转自
http://blog.csdn.net/rmouse_2005/archive/2006/01/05/571328.aspx