He escrito una función, que tiene que comprobar si se ha tomado o no un nombre de usuario. Ahora cuando llamo a la función desde otra función, y le aviso su valor de retorno:Devolución de la respuesta de una llamada Jquery AJAX
alert(checkusernameavailable('justausername'));
dice 'indefinido'. He buscado alto y bajo, pero no puedo encontrar lo que estoy haciendo mal. Supongo que debería devolver el php-echo en check.php, pero no es así. Aquí está la función que escribí:
var checkusernameavailable = function(value) { $.ajax({ url: "check.php", type: "POST", async: false, cache: false, data: "username=" + value + "", success: function(response) { alert(response); return response; }, error: function() { alert('ajax error'); } }); }
¿Qué estoy haciendo mal?
Gracias por su respuesta, lo entiendo. Pero no resuelve mi problema. Déjame explicar lo que quiero un poco más. Estoy activando la función checkusernameavailable desde otra función, que se dispara cuando se envía mi formulario. Entonces, lo que estoy haciendo es: if (! Checkusernameavailable (username_box.val())) { return false; // no envíe el formulario // y haga algunos cuadros rojos, mostrando mensajes de error multilingües (lo cual - por cierto - significa que no puedo insertar la respuesta directamente en mi html ...) } –
@ user468893 - Ver mi editar. Debes sincronizar tu llamada Async AJAX. – GenericTypeTea
Ya lo era, pero ese no era el truco :) El valor de retorno hizo la magia. ¡Gracias! –