Задать вопрос
Serg89
@Serg89
Изучаю. Читаю.

Как выполнить form.submit в случае успеха ajax?

Подскажите, пожалуйста, каким образом можно выполнить form.submit внутри success аякс запроса? Если имеет значение, то ajax-запрос выполняется с помощью метода BX.ajax. Браузер(Мозилла) при попытке отправить форму пишет, что Firefox заблокировал одно всплывающее окно с сайта.

$('#myform').validate({
		debug: true,
		rules : {
			email : {
				required : true,
				email : true
			}
		},
		messages : {
			email : {
				required : '<div class="input-error">Введите, пожалуйста, ваш e-mail</div>',
				email : '<div class="input-error">Некорректный e-mail</div>'
			}
		},
		submitHandler: function(form) {
			//Получим данные формы
			var data = $(form).serialize();
			console.log(data);
			//Выполним ajax запрос
			BX.ajax({
				url: 'myajax.php',
				method: 'POST',
				data: data,
				dataType: 'json',
				onsuccess: function(response) {
					if (response.status == 'OK') {
						$(form).find('input[name="orderNumber"]').val(response.orderNumber);
						console.log($(form));
						form.submit();
					}
				}
			});
		}
	});


data и form есть.
console.log($(form));
срабатывает и выдает корректный результат.
  • Вопрос задан
  • 2697 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@dimon119
$.ajax({
...
success: function(data){
$("#form").submit();
}
});
Ответ написан
Serg89
@Serg89 Автор вопроса
Изучаю. Читаю.
Всем спасибо. Решение нашел.
Необходимо указать ajax, что запрос синхронный с помощью параметра
async: false
. При удачном запросе некоторой переменной задаем
true
.
При выходе из ajax проверяем эту переменную на верность и в этом случае выполняем
form.submit();
Ответ написан
Комментировать
fabrykant
@fabrykant
$("form").trigger( "submit" );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы