Две мысли:
Проверка
У вас есть незакрытый тег </a
в этой строке (возможно, вам придется немного прокрутить код вправо):
<span id="contact-back">or you can <a href="index.html" class="read-more">Go back</a</span>
<!-- ^-- here -->
Валидатор W3C может помочь с такими вещами. Неправильная разметка может действительно тратить ваше время. :-) Но это вполне может быть красная сельдь здесь. (Валидатор также говорит, что есть дополнительный </div>
, но я подозреваю, что это просто артефакт копирования и вставки.)
Синхронный Ajax в обработчике отправки
Я бы не пытался выдать синхронный запрос Ajax из обработчика отправки формы, просто кажется, что у вас возникли проблемы.
Я бы попробовал завершить обработчик событий, а затем отправить форму:
function sendContact() {
var data = $("#contact_form > form").serialize();
setTimeout(sendViaAjax, 0);
return false;
function sendViaAjax() {
$.ajax({
type: "POST",
url: "sendContact.asp",
global: false,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
data: data,
dataType: "text",
async: false,
cache: false,
error:function () {
alert('AJAX Connectivity Error');
},
success: function(msg){
}
});
$("#contact_form").fadeOut(1000, function() {
$("#message_sent").slideDown(500);
});
}
}
Не по теме, но я настоятельно рекомендую избегать синхронных запросов Ajax в основном потоке пользовательского интерфейса. (Синхронный Ajax в веб-работнике , хорошо.) В них нет необходимости, и они блокируют браузер чем-то жестоким (особенно IE, но все они в различной степени).