Jquery требуется некоторое время для загрузки. Поэтому вам нужно использовать метод ready () jQuery для загрузки списков событий, как только DOM будет готов.
Во-вторых, вы используете кнопку отправки. Вам нужно отменить его естественное поведение, в противном случае браузер выполнит действие js, а также отправит форму.
Ваш код js должен работать так:
$(document).ready(function() {
$('#special').click(function () { specialFunction(); });
});
Попробуйте использовать тег вместо кнопки ввода с типом submit или добавьте «return false;» отменить естественное поведение браузера.
С наилучшими пожеланиями,
Пол