no comprendo cual es el proposito de cambiarlo de categoria[] a categoria[0], categoria[1], etc. pero bueno, es practicamente lo mismo, solo que en lugar de usar getElementsByName usaremos el objeto form y construir el nombre dinamicamente.
Código:
// asumiendo que form es la referencia del formulario;
for(var i = 0; form["categoria["+i+"]"; i++){
// aqui verifica los campos;
}
Cita: Alguien me dijo que si los ponia ordenados por indices no habría problema, en efecvto, no lo hay, lo único que pasa que ahora no se como captar los valores de todos los selects dinamicamente.
no lo estoy entendiendo mucho pero creo que depende mas bien de como tienes el codigo.