Ragazzi, vi risulta che un array di checkbox abbia dei problemi quando viene passato un solo valore (tra l'altro in un layer)?

Mi spiego meglio semplicemente.
Ho un codice javascript che crea un array di checkbox e lo visualizza in un layer dinamico
codice:
var layerBox = document.getElementById("MioLayer");
stringaHTML = "";
stringaHTML +=  "<input type='checkbox'  name='checkboxMod[]' value='valore1'>"; 
stringaHTML +=  "<input type='checkbox'  name='checkboxMod[]' value='valore2'>"; 
stringaHTML +=  "<input type='checkbox'  name='checkboxMod[]' value='valore3'>"; 
stringaHTML += "<input type='button' value='Cancella Selezionati' onclick='CancellaDettaglioMultiDaCheckBox(\"checkboxMod[]\")'>";
layerBox.innerHTML = stringaHTML;
layerBox.style.visibility = "Visible";
layerBox.style.display="block";
come vedete il pulsante 'Cancella Selezionati' chiama la funzione CancellaDettaglioMultiDaCheckBox:
codice:
function CancellaDettaglioMultiDaCheckBox(txtobjCB){
//Qui viene passato l'oggeto checkbox (eg: "checkboxMod[]") in formato stringa creato nel layer
chks = document.forms[0].elements[txtobjCB];
for (var i=0;i<chks.length;i++){

	if ( chks[i].checked ){
	alert("selezionato: " + i);
	contaModTot++;
	}
	
  }
}
Praticamente funziona tutto alla grande, nel senso che si riesce a ciclare gli elementi della checkbox che seleziono, nell'esempio iniziali ve ne ho messi 3... ma ho il problema quando l'elemento è uno soltanto:
codice:
var layerBox = document.getElementById("MioLayer");
stringaHTML = "";
stringaHTML +=  "<input type='checkbox'  name='checkboxMod[]' value='valore1'>"; 
stringaHTML += "<input type='button' value='Cancella Selezionati' onclick='CancellaDettaglioMultiDaCheckBox(\"checkboxMod[]\")'>";
layerBox.innerHTML = stringaHTML;
layerBox.style.visibility = "Visible";
layerBox.style.display="block";
in questo caso la proprietà chks.length ritorna come valore undefined e non entra nel ciclo for....

come mai ?