Originariamente inviato da cavicchiandrea
Scusa Carlo per quale motivo?
Pensa che io faccio esattamente il contrario perché IE (nelle versioni vecchie tipo la 6 ora probabilmente non è più così) non distingueva id dal name una volta che ho usato il name diversa dall'id ho perso due giorni per capire il perché non andava con IE da allora id e name sempre uguali mai più avuto problemi.
Ma IE6 faceva confusione con document.getElementById() oppure con document.all? getElementById non dovrebbe creare mai problemi e confusioni... è il metodo più solido.

Il motivo principale è che gli id sono univoci, mentre i name no, funzionano (all'incirca: vedi sotto) come l'attributo class. Quindi, immagina di avere più elementi con attributo name identico e con attributo id identico (cosa che, anche se scorretta, può capitare a volte con i CMS... motivo per cui due id identici non danno errore, semplicemente vengono ignorati gli elementi successivi al primo), beh, ti troverai ad avere su alcuni browser una collection, mentre su altri un element. Non so se è tutto chiaro.
Faccio uno schema riassuntivo in base a quanti elementi ci sono nella pagina con lo stesso id / class / name, sperando di riuscire a spiegarmi meglio:

codice:
		Uno		Più di uno
------------------------------------------------
stesso id	element		element (il primo)
------------------------------------------------
stessa class	collection	collection
------------------------------------------------
stesso name	element		collection