印象中一直覺得 checkbox 很難搞,但是又不太清楚問題在那,今天終於知道原因了。關鍵在於處理的是單一 checkbox 或是多個 checkbox,舉個例子:
<form name=”myform”>
<input type=”checkbox” name=”food” value=”cake”>
<input type=”checkbox” name=”food” value=”noodle”>
</form>
要把 2 個 checkbox 都勾選話通常都是利用以下 javascript code
var checkbox=document.forms[‘myform’].food;
for(i=0;i<checkbox.length;i++) {
checkbox[i].checked=true;
}
但是當 form 只有1個 checkbox 時就會出錯,因為當只有1個 checkbox 時第一行 javascript 取得的是一個物件, 而不是物件陣列,只要執行到 checkbox.length 就會有 undefined 之類的錯誤,比較完善的寫法如下:
var checkbox=document.forms[‘myform’].food;
if ( checkbox.length != null ) {
for(i=0;i<checkbox.length;i++) {
checkbox[i].checked=true;
} else {
checkbox.checked=true;
}
(1 votes, average: 4.00 out of 5)
Loading...