См. в «Словаре трудностей».
См. в «Словаре трудностей»: Одеть и надеть.
См. «Словарь трудностей».
Правильно: надеть на него шляпу.
Одеть и надеть — это паронимы, то есть есть слова, похожие по звучанию, но различающиеся по смыслу. Именно из-за похожести некоторые путаются в их употреблении.
Надеть можно что-то на кого-то или на что-то — например, надеть платье на куклу или перчатку на руку. Одеть можно только кого-то — например, одеть ребенка. Иногда глагол употребляют в переносном значении — например, зима одела поля снегом.