Примечание: Я лично предпочитаю jQuery
вместо $
; это больше набирает текст, но я считаю его более читаемым.jQuery click handler не выполняет AJAX POST
У меня есть простая форма, которая позволяет пользователю вводить свои имена и фамилии и адрес электронной почты. Она имеет кнопку «Сохранить», то при нажатии выполняет:
jQuery('#saveButton').click(function() {
alert('About to Save to server');
var validated = validateContact();
if(!validated) {
alert('Did not validate!');
return;
} else {
alert('Validated!');
}
jQuery().ajax({
url: "saveContact",
type:"post",
dataType: 'json',
data: {
contact: {
firstName: jQuery('#firstName').val(),
lastName: jQuery('#lastName').val(),
emailAddress: jQuery('#emailAddress').val()
}
},
success: function(result) {
jQuery('#firstName').val("");
jQuery('#lastName').val("");
jQuery('#emailAddress').val("");
},
error: function(xhr){
alert(xhr.responseText);
}
});
alert('Saved to server');
});
Когда я нажимаю кнопку «Сохранить», я получаю несколько alert
всплывающих окон, в том числе «ПРОВЕРЯЕМЫЕ!» но сценарий, похоже, вскоре умер, и я никогда не вижу предупреждения «Сохранено на сервер». Это говорит о том, что мой вызов jQuery/AJAX плохой. Кроме того, когда я открываю Инструменты для разработчиков браузера, я не вижу, как браузер делает POST для моей сети. В консоли я не вижу никаких ошибок. Любые идеи относительно того, где я ошибаюсь, и почему я даже не вижу активности в сети?
JQuery -> JQuery плюс вы должны указать файл или контроллер тоже. –
Я считаю, что вам нужно указать файл: url: «saveContact.php», например – Shaeldon
Спасибо @ Dean.DePue (+1), но я не буду следовать за вами. Вы говорите, что мне нужно заменить 'jQuery' на' jquery-> jQuery'? Если да, то почему? Также я не думаю, что вы правы, потому что сам обработчик кликов выполняет и запускает сообщения 'alert' до определенной точки. – smeeb