Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
 При вызове submit сделать AJAX и  [new]
GlooBus
Member

Откуда:
Сообщений: 63
Собственно идея такая, нужно отловить submit формы авторизации, предотвратить его, в событии запустить AJAX и по его завершению запустить submit этой же формы, но уже не отлавливая, что бы он завершился.

Накидал примерно следующее:
	var SUBMIT_LOGIN_FORM = false; 		

	$('#login_form').submit(function(e){		
			
		if (SUBMIT_LOGIN_FORM) {
			console.log('SUBMIT_LOGIN_FORM = '+SUBMIT_LOGIN_FORM);
			return true; 
		}
		
		$.ajax({
			method: "POST",
			url: '/login/ajax_check_user',   
			data: $(this).serialize(),
			dataType: 'json',
			success: function(data){
				console.log(data);	
				SUBMIT_LOGIN_FORM = true;
				$('#login_form').submit();
			},
			error: function(error) {
				console.log(error);
			}
		});		
		
		return SUBMIT_LOGIN_FORM;
	});			


Вроде бы все нормально, я в консоле вижу вывод console.log(data) и затем SUBMIT_LOGIN_FORM = true
Но на этом все, сам submit не происходит :(

У меня ощущение, что после того как в событии submit произошел return false, он перестает воспринимать его иначе...

Сообщение было отредактировано: 5 ноя 20, 10:47
5 ноя 20, 10:51    [22226693]     Ответить | Цитировать Сообщить модератору
 Re: При вызове submit сделать AJAX и  [new]
GlooBus
Member

Откуда:
Сообщений: 63
Получилось добиться желаемого следующим способом, просто заменил
$('#login_form').submit();

на
$('#login_form').find('[type=submit]').click();


Единственное я в начале функции события submit делаю кнопку [type=submit] не активной, рисую в ней анимацию загрузки...
По этому сначала кнопка включается обратно, кликается и потом опять выключается... Но эффект достигнут, правда не уверен что правильным путём :)
5 ноя 20, 11:19    [22226731]     Ответить | Цитировать Сообщить модератору
 Re: При вызове submit сделать AJAX и  [new]
vb_sub
Member

Откуда:
Сообщений: 782
Зачем такой костыль?
6 ноя 20, 09:50    [22227360]     Ответить | Цитировать Сообщить модератору
 Re: При вызове submit сделать AJAX и  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28166
По мне так тут декоратор напрашивается: https://learn.javascript.ru/call-apply-decorators
6 ноя 20, 18:31    [22227692]     Ответить | Цитировать Сообщить модератору
 Re: При вызове submit сделать AJAX и  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28166
vb_sub
Зачем такой костыль?

Надеется, что никто не догадается как его обойти :)
6 ноя 20, 18:33    [22227693]     Ответить | Цитировать Сообщить модератору
Все форумы / HTML, JavaScript, VBScript, CSS Ответить