大家好
偶然的機會,我突然想到,有些 checkbox 是 半選狀態,例如
 
 
 
所以我也在想,到底要如何呈現呢?
 
其實很簡單
 
一般的選取是 checked=true
半選是 indeterminate=true
 
但是神奇的是
 
如果直接用 屬性的方式直接指定 indeterminate=true ,會發現沒有效果,必須針對物件的屬性修改值才會產生作用。
例如用 jQuery 修改 DOM 物件:
 
jQuery("#my_checkbox").prop('indeterminate',true);
 
或是用原生JS方式:
 
var checkbox = document.getElementById("my_checkbox");
checkbox.indeterminate = true;
都可以
 
但是就是不能藉由 參數屬性 來產生該效果
 
例如直接新增一個網頁,裡面物件有
 
<input type="checkbox" value="1" id="my_checkbox" indeterminate="true" >

 
會發現他還是沒有選取的狀態
 
而且也要注意,即使修改 indeterminate 的狀態,不會影響目前是否 選取 checked,也就是說,目前已經選取或是未選取的 checkbox 不會因為改變了 indeterminate 的值而在表單送出時值會改變,這點需要特別注意。
 
也就是說 indeterminate 的值只是單純拿來表示"半選"的狀態而已
 
給大家參考囉
感恩