Presumo dal codice che posti che tutte le checkbox, sia che siano una o mille, hanno lo stesso name
name="del"

La cosa sta così: quando tu hai piu checkboxes, del si riferisce cone name a una COLLEZIONE di oggetti, e come tale è dotata di length.

Ma se hai una sola checkbox, del si riferisce non più ad una collezione (array) che non c'è, ma all' oggetto input specificato - che come tale non è dotato di proprietà length.

var delx = document.test.del.length;
var conta = 0;
if(delx){//è una collezione
for (var i=0; i<delx; i++){ if (delx[i].checked){++conta;} }
}
else if(document.test.del.checked){//è una sola checkbox, ed è checked
++conta;
}

Non lo ho testato, ma grosso modo sarebbe così.