Почему при клике обработчик не срабатывает?
Заходит такой Java Script в пустой DOM, а ему говорит начальник-программист:
- Найди элемент по id, и пусть при клике он что-то делает!
А Java Script отвечает:
- Что-то такой элемент не иначе, как undefined!
И ничего не делает...
Ответ Dima Polos более креативен, я объясню конкретнее)
Скрипт нужно написать внизу страницы либо написать код для того, чтобы JavaScript запускался тогда, когда DOM уже загружен до конца. Примерно так:document.addEventListener('DOMContentLoaded', function(){
    // Здесь код
});
Причина того, что ваш код не работает в том, что элементы страницы не успевают загружаться тогда, когда JavaScript начинает свою работу. Соответсвенно, скрипт ищет элемент с id "btn" и не находит его. Дальше уже ясно что код не будет работать, поскольку такого элемента фактический нет. 
Поэтому либо переносим скрипт после input, либо с помощью кода выше. Успехов вам!