Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2019, 12:30
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Ajax не отдает return
Привет всем.
Я вот немного не пойму вроде все правильно прописал но результат получаю "undefined"

function reg_form_login_function($login){
    $.ajax({type: "POST",url: "/js.php",data: {"tip": 'login',"var":$login},
    dataType: "html",cache: false,success: function(data){
        console.log(data);
        return data;
    }   
    });
}

$("#reg-login").change(function() {
    alert(reg_form_login_function(this.value))
});
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2019, 15:35
Интересующийся
Отправить личное сообщение для username Посмотреть профиль Найти все сообщения от username
 
Регистрация: 21.03.2019
Сообщений: 18

может быть не $login a login
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2019, 16:38
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,139

1. Чтобы функция вернула результат ее нужно вызвать. при условии что она была создана ранее.
2. Если в теле функции нет оператора return она возвращает "undefined"
3. Функции могут быть вложенные.

В своем примере ты нигде не вызываешь success следовательно п.1
В теле функции "reg_form_login_function" есть только один вызов функции $.ajax( ...параметр ) и нет оператора return п.2
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2019, 16:53
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Сообщение от MallSerg Посмотреть сообщение
1. Чтобы функция вернула результат ее нужно вызвать. при условии что она была создана ранее.
2. Если в теле функции нет оператора return она возвращает "undefined"
3. Функции могут быть вложенные.

В своем примере ты нигде не вызываешь success следовательно п.1
В теле функции "reg_form_login_function" есть только один вызов функции $.ajax( ...параметр ) и нет оператора return п.2
Не понял, Пример есть ?
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2019, 08:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,257

Сообщение от biryukovm
вроде все правильно прописал но результат получаю "undefined"
Если бы правильно написал - то правильно и получил бы.

Твоя функция reg_form_login_function() ничего не возвращает.

А в колбек-функции хоть абвозвращайся! Результат придет не тебе...
Он придет методу, в который ты передал колбек-функцию и не факт что этот ответ нужен методу...
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2019, 10:04
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Сообщение от ksa Посмотреть сообщение
Если бы правильно написал - то правильно и получил бы.

Твоя функция reg_form_login_function() ничего не возвращает.

А в колбек-функции хоть абвозвращайся! Результат придет не тебе...
Он придет методу, в который ты передал колбек-функцию и не факт что этот ответ нужен методу...
Ребят Вот вы странные, я понил и так что функция не возвращает, пример можете показать как это сделать ?
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2019, 10:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

biryukovm,
других вариантов в данном случае нет.
function reg_form_login_function($login){
    $.ajax({type: "POST",url: "/js.php",data: {"tip": 'login',"var":$login},
    dataType: "html",cache: false,success: function(data){
        alert(data);
    }
    });
}

$("#reg-login").change(function() {
    reg_form_login_function(this.value)
});
Ответить с цитированием
  #8 (permalink)  
Старый 24.04.2019, 10:43
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Сообщение от рони Посмотреть сообщение
biryukovm,
других вариантов в данном случае нет.
function reg_form_login_function($login){
    $.ajax({type: "POST",url: "/js.php",data: {"tip": 'login',"var":$login},
    dataType: "html",cache: false,success: function(data){
        alert(data);
    }
    });
}

$("#reg-login").change(function() {
    reg_form_login_function(this.value)
});


Понял но не варик, Я вот в сети нашел вот такой пример человек пишет что метод устаревший
var data = function() {
  return $.ajax({
    type: "POST",
    url: "http://"+location.hostname+"/getData.php"
  });
}
 
data().then(function(response) {
  console.log(response);
});


Источник : http://www.cyberforum.ru/javascript-...l#edit11265750

Последний раз редактировалось biryukovm, 24.04.2019 в 10:45.
Ответить с цитированием
  #9 (permalink)  
Старый 24.04.2019, 10:57
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

так в код из поста №1 можно добавить

function reg_form_login_function(login) {
	return $.ajax({
		type: "POST",
		url: "/js.php",
		data: {
			tip: "login",
			"var": login
		},
		dataType: "html",
		cache: false
	});
}

$("#reg-login").change(async function() {
	alert(await reg_form_login_function(this.value));
});
Ответить с цитированием
  #10 (permalink)  
Старый 24.04.2019, 11:29
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Сообщение от Malleys Посмотреть сообщение
так в код из поста №1 можно добавить

function reg_form_login_function(login) {
	return $.ajax({
		type: "POST",
		url: "/js.php",
		data: {
			tip: "login",
			"var": login
		},
		dataType: "html",
		cache: false
	});
}

$("#reg-login").change(async function() {
	alert(await reg_form_login_function(this.value));
});
Интересно, работает но мне не подходить, я делаю проверку в форме и при каждом изменении или клике делаю проверку полей.

И теперь получается с Вашим примером у меня при первом запросе форма не отправляется , все проверяет - Это хорошо

Но при повторном слетает с формы параметр "return false" и страница перезагружается.


немного объясню форма модального окна я хочу перепроверить все поля на берегу и тока потом пропустить клиента если все успешно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что делают функции Panwo Общие вопросы Javascript 2 21.10.2015 20:37
AJAX Get и post вывод ответа по средствам return как оитог работы функции koeshiro AJAX и COMET 8 05.03.2015 09:00
jQuery научите пользоваться. Станислав89 Общие вопросы Javascript 10 19.12.2013 23:01
сортировка sort qwermjk Общие вопросы Javascript 8 31.01.2013 18:45
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44