Чего мне не хватает?
Вам не хватает того, что IE добавляет имена и идентификаторы элементов в качестве глобальных переменных. Некоторые другие браузеры в определенных условиях (иногда требующие, чтобы документ находился в режиме причуд) копируют этот хаббит, а некоторые - нет.
Таким образом, в IE (и некоторых других) имя формы calc является глобальной переменной, ссылающейся на форму, а в других браузерах это не так.
Метод в ответе Дануянда - это надежный кросс-браузерный способ получения ссылки на форму. Формальный метод доступа:
document.forms['calc'];
Именованные элементы управления формы можно получить аналогичным образом:
document.forms['calc'].elements['input'];
или
document.calc.input;
Будьте осторожны с указанием имен элементов управления, которые совпадают с тегами, это немного сбивает с толку. Кроме того, если существует более одного элемента управления с одинаковым именем, вы получите HTML-коллекцию , а не один элемент.
Возможно, вы захотите прочитать о HTMLForms и связанных с ними элементах.