
23.04.2019, 12:30
|
Кандидат Javascript-наук
|
|
Регистрация: 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))
});
|
|

23.04.2019, 15:35
|
Интересующийся
|
|
Регистрация: 21.03.2019
Сообщений: 18
|
|
может быть не $login a login
|
|

23.04.2019, 16:38
|
 |
Профессор
|
|
Регистрация: 07.03.2011
Сообщений: 1,139
|
|
1. Чтобы функция вернула результат ее нужно вызвать. при условии что она была создана ранее.
2. Если в теле функции нет оператора return она возвращает "undefined"
3. Функции могут быть вложенные.
В своем примере ты нигде не вызываешь success следовательно п.1
В теле функции "reg_form_login_function" есть только один вызов функции $.ajax( ...параметр ) и нет оператора return п.2
|
|

23.04.2019, 16:53
|
Кандидат Javascript-наук
|
|
Регистрация: 13.12.2013
Сообщений: 110
|
|
Сообщение от MallSerg
|
1. Чтобы функция вернула результат ее нужно вызвать. при условии что она была создана ранее.
2. Если в теле функции нет оператора return она возвращает "undefined"
3. Функции могут быть вложенные.
В своем примере ты нигде не вызываешь success следовательно п.1
В теле функции "reg_form_login_function" есть только один вызов функции $.ajax( ...параметр ) и нет оператора return п.2
|
Не понял, Пример есть ?
|
|

24.04.2019, 08:02
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,257
|
|
Сообщение от biryukovm
|
вроде все правильно прописал но результат получаю "undefined"
|
Если бы правильно написал - то правильно и получил бы.
Твоя функция reg_form_login_function() ничего не возвращает.
А в колбек-функции хоть абвозвращайся! Результат придет не тебе...
Он придет методу, в который ты передал колбек-функцию и не факт что этот ответ нужен методу...
|
|

24.04.2019, 10:04
|
Кандидат Javascript-наук
|
|
Регистрация: 13.12.2013
Сообщений: 110
|
|
|
|

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)
});
|
|

24.04.2019, 10:43
|
Кандидат Javascript-наук
|
|
Регистрация: 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.
|
|

24.04.2019, 10:57
|
 |
Профессор
|
|
Регистрация: 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));
});
|
|

24.04.2019, 11:29
|
Кандидат Javascript-наук
|
|
Регистрация: 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" и страница перезагружается.
немного объясню форма модального окна я хочу перепроверить все поля на берегу и тока потом пропустить клиента если все успешно.
|
|
|
|