2015-12-27 3 views
4

Я использую jquery 1.11.3. Я пытаюсь использовать ajaxComplete. Он показывает только значок загрузки без возврата сообщения об ошибке, только в консоли. Как я прочитал здесь:Использование ajaxComplete

http://www.w3schools.com/jquery/ajax_ajaxcomplete.asp

Примечание: По состоянию на JQuery версии 1.8, этот метод должен быть прикреплен только к документу.

Но как его использовать в моем случае?

Мой код:

$(document).ready(function() { 
 
    $("#email").change(function() { 
 
    var usr = $("#email").val(); 
 
    if (usr.length >= 3) { 
 
     $("#status").html('<img align="absmiddle" src="/images/loader.gif" /> Checking availability...'); 
 
     $.ajax({ 
 
     type: "POST", 
 
     url: "/check_user.php", 
 
     data: "email=" + usr, 
 
     success: function(msg) { 
 
      $("#status").ajaxComplete(function(event, request, settings) { 
 
      if (msg == 'OK') { 
 
       $("#email").removeClass('ErrorField'); // if necessary 
 
       $("#email").addClass("object_ok"); 
 
       $(this).html(''); 
 
       $("#submit").attr("disabled", false); 
 
      } else { 
 
       $("#email").removeClass('object_ok'); // if necessary 
 
       $("#email").addClass("ErrorField"); 
 
       $(this).html(msg); 
 
       $("#submit").attr("disabled", true); 
 
      } 
 
      }); 
 
     } 
 
     }); 
 
    } else { 
 
     $("#email").removeClass('object_ok'); // if necessary 
 
     $("#email").addClass("ErrorField"); 
 
    } 
 
    }); 
 
});

+0

Попробуйте использовать '$ .ajaxComplete' вместо' $ (что-то) .ajaxComplete'? –

+0

Пожалуйста, не следуйте http://w3schools.com. –

+0

И, кроме того, 'alert (not);' ошибка. Нет переменной 'not'. –

ответ

1

Вы не нужно использовать AJAX Complete внутри success функции AJAX. Измените код на:

$("#status").html('<img src="/images/loader.gif" /> Checking ...'); 

$.ajax({ 
    type: "POST", 
    url: "/check_user.php", 
    data: "email=" + usr, 
    success: function(msg) { 
    // Remove this completely 
    // $("#status").ajaxComplete(function(event, request, settings) { 
    if (msg == 'OK') { 
     $("#email").removeClass('ErrorField'); 
     $("#email").addClass("object_ok"); 
     $(this).html(''); 
     $("#submit").attr("disabled", false); 
    } else { 
     $("#email").removeClass('object_ok'); 
     $("#email").addClass("ErrorField"); 
     $(this).html(msg); 
     $("#submit").attr("disabled", true); 
    } 
    }); 
    // And this too. 
    // } 
}); 
+0

Это не работает, я использую форму для моей формы регистра, и я тоже использую этот ajaxComplete. Но теперь в консоли отсутствует сообщение об ошибке. –

+0

@mistery_girl Я попросил вас полностью удалить «ajaxComplete» и проверить. –

+0

Я попробовал код, который вы предложили, но никакого результата. –