|
我們?cè)谑褂肳indows XP的文件夾屬性對(duì)話框時(shí),會(huì)發(fā)現(xiàn)文件夾的Attributes分類里的Read-only和Hidden選項(xiàng)有時(shí)不是完全的checked或unchecked狀態(tài),而常常是一種雖然已被打勾但背景又是灰色的狀態(tài)。其實(shí)這種不確定的CheckBox狀態(tài)Web中也是可以表現(xiàn)的。
在Web頁(yè)面中,我們可以使用<input id="chkb" type="CheckBox">來(lái)得到一個(gè)CheckBox控件。這個(gè)控件最常見(jiàn)的形式就是checked(被打上一個(gè)勾)或unchecked狀態(tài),我們可是使用鼠標(biāo)點(diǎn)擊來(lái)輕松的切換這兩個(gè)狀態(tài),同時(shí)也可以使用腳本語(yǔ)言來(lái)改變它們的狀態(tài),比如使用JavaScript腳本:
chkb.checked = true; 或 chkb.checked = false;
下圖是CheckBox可以表現(xiàn)的三種狀態(tài):

第一種和第三種很常見(jiàn),而且它們是可以使用HTML來(lái)設(shè)置的,就是說(shuō)我們可以把CheckBox的初始狀態(tài)通過(guò)一個(gè)叫checked的html元素的屬性來(lái)確定。我們這里要說(shuō)的Indeterminate狀態(tài)雖然在IE4.0就開(kāi)始支持了,可是卻沒(méi)有html元素屬性來(lái)設(shè)置其值,而只能使用腳本來(lái)設(shè)置其Indeterminate狀態(tài)。
比如使用JavaScript腳本(indeterminate默認(rèn)是false):
chkb.indeterminate = true; 或 chkb.indeterminate = false;
注意:CheckBox的indeterminate是一個(gè)獨(dú)立的屬性,和CheckBox的checked、status的取值無(wú)關(guān),也就是說(shuō)它只會(huì)影響CheckBox的外觀顯示,我們?nèi)匀豢梢哉5氖褂媚_本讀取checked和status的值。
------------------------------------------------------------------------
From:http://www.itbody.com/doc/Html/WEB/105537297.html
復(fù)制代碼 代碼如下:
<body>
<h3>三態(tài)的checkbox(變化順序:未選中->灰色選中->白色選中)</h3><br>
<form name=test>
根據(jù)onclick變化的checkbox:<br>
<input type=checkbox name=checkbox0 flag=0 onclick='gray(this)'>初始化為未選中的checkbox<br>
</td><td><input type=checkbox name=checkbox1 flag=1 onclick='gray(this)'>初始化為白色選中的checkbox<br>
</td><td><input type=checkbox name=checkbox2 flag=2 onclick='gray(this)'>初始化為灰色選中的checkbox<br>
根據(jù)onpropertychange變化的checkbox:<br>
<input type=checkbox name=checkbox3 onpropertychange='gray2(this)'>初始化為未選中的checkbox
</form>
<script language=Javascript>
//用于onclick,需要一個(gè)自定義屬性flag.
function gray(c)
{
switch(c.flag)
{
//當(dāng)flag為0時(shí),為未選中狀態(tài)
case '0':c.checked=true;c.indeterminate=true;c.flag='2';break;
//當(dāng)flag未1時(shí),為白色選中狀態(tài)
case '2':c.checked=true;c.indeterminate=false;c.flag='1';break;
//當(dāng)flag為2時(shí),為灰色選中狀態(tài)
case '1':c.checked=false;c.indeterminate=false;c.flag='0';break;
}
}
//用于onpropertychange
function gray2(c)
{
c.indeterminate=c.checked;
}
//用于body的onload,根據(jù)checkbox的flag屬性判斷checkbox的狀態(tài)
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;
}
}
}
}
window.onload=check;
</script>
JavaScript技術(shù):(僅IE下有效)關(guān)于checkbox 三態(tài),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。