Показать сообщение отдельно
  #2 (permalink)  
Старый 26.12.2019, 13:32
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от raja
Форма при попытке её отправить посылает ajax дополнительный POST-запрос. Если запрос возвращает "ок", форма отправляется, иначе выводится в alert то, что вернул ajax запрос ответ от сервера.
Да, ваш код действительно это делает уже сейчас, при условии, что сервер действительно правильно отвечает!

Сообщение от raja
Почему-то когда ajax сервер возвращает "ok", форма не отправляется сразу, а только при следующей попытке её отправить. Как сделать чтобы форма в этом случае сразу отправлялась?
Предоставленный код отправляет форму сразу в случае получения положительного ответа от сервера. Кстати ваш код можно изменить...
(function() {
	var isAllowedToSubmit = false;

	$("#new_item_form").on("submit", function(event) {
		if(isAllowedToSubmit) return true;

		event.preventDefault();
		$.post("ajax_unique_name.php", {
			name: $("#input_name").val()
		}).done(function(data) {
			if(data === "ok") {
				isAllowedToSubmit = true;
				$("#new_item_form").submit();
				isAllowedToSubmit = false;
			} else {
				alert(data);
			}
		});
	});
})();


Не используйте слово «ajax» для обозначения случайных вещей, сложно понимать людей, которые используют выражение «асинхронный JavaScript и XML» для обозначения совершенно других вещей!

Последний раз редактировалось Malleys, 26.12.2019 в 13:37.
Ответить с цитированием