我们在使用WindowsXP的文件夹属性对话框时,会发现文件夹的Attributes分类里的Read-only和Hidden选项有时不是完全的checked或unchecked状态,而常常是一种虽然已被打勾但背景又是灰色的状态。其实这种不确定的CheckBox状态Web中也是可以表现的。
在Web页面中,我们可以使用
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
复制代码 代码如下:
三态的checkbox(变化顺序:未选中->灰色选中->白色选中)
根据onclick变化的checkbox:
根据onpropertychange变化的checkbox:
//用于onclick,需要一个自定义属性flag.
functiongray(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
functiongray2(c)
{
c.indeterminate=c.checked;
}
//用于body的onload,根据checkbox的flag属性判断checkbox的状态
functioncheck()
{
for(vari=0;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;
相关推荐
- Javascript实现图片不间断滚动的代码
- 改变文本框字体颜色的js脚本
- 文本框点击时文字消失,失去焦点时文字出现
- js下拉菜单中自动信息轮换播放
- javascript textarea字数限制
- javascript 输入框提示列表效果
- Div Select挡住的解决办法
- 很可爱的输入框
- javascript 单选框,多选框美化代码
- 比较平滑的js控制textaera的高度
- js禁用和激活input表单的方法
- css+js实现select列表横向排列效果代码
- javascript下兼容firefox选取textarea文本的代码
- 兼容Firefox和IE的onpropertychange事件oninput
- javascript兼容firefox的文本输入长度提示
- 用javascript和css模拟select的脚本
- javascript实现通过拼音首字母快速选择下拉列表
- js下拉框里超过变成省略号
- javascript+css好多网站用的选星星实现打分功能的函数
- js批量上传界面的实现