Я пытаюсь вернуть true или false функции в зависимости от ответа функции AJAX внутри нее, но я не уверен, как мне это сделать.Как вернуть значение внутри функции AJAX родительскому в javascript?
(function($) {
$('#example').ajaxForm({
beforeSubmit : function(arr, $form, options) {
var jsonStuff = JSON.stringify({ stuff: 'test' });
$.post('/echo/json/', { json: jsonStuff }, function(resp) {
if (resp.stuff !== $('#test').val()) {
// Cancel form submittion
alert('Need to type "test"');
return false; // This doesn't work
}
}, 'json');
},
success : function() {
alert('Form sent!');
}
});
})(jQuery);
Я сделал скрипку, чтобы проиллюстрировать это лучше:
http://jsfiddle.net/vengiss/3W5qe/
Я использую JQuery и Ajax формы в Malsup в плагин, но я считаю, что это поведение не зависит от плагина, мне просто нужно до return false
до функции beforeSubmit
в зависимости от запроса POST
, поэтому форма не отправляется каждый раз. Может ли кто-нибудь указать мне в правильном направлении?
Заранее спасибо!
Добро пожаловать в удивительный мир ** асинхронном **! Вы не можете этого сделать. – SLaks
Возможный дубликат [jQuery: возвращаемые данные после успешного запуска ajax] (http://stackoverflow.com/questions/5316697/jquery-return-data-after-ajax-call-success) –
FYI, если вы поместите свой код внутри обработчик 'ready', он уже передал' jQuery' в качестве первого аргумента, поэтому вы можете просто удалить непосредственный вызов функции: 'jQuery (function ($) {... code here ...});' –