2013-09-24 13 views
5

Używam app django-simple-captcha dla mojej witryny opartej na django, jestem w stanie zintegrować pole formularza captcha w mojej formie, ale problem polega na tym, jak utworzyć przycisk, który wywołuje odświeżanie Ajax, aby odświeżyć obraz captcha po kliknięciu? Dokumentacja aplikacji nie jest zbyt jasna i starałem się postępować zgodnie z przykładem podanym w dokumentacji, ale to nie działa. Pomóż mi w tej sprawie?Jak utworzyć odświeżanie Ajax dla django-simple-captcha

EDIT: Oto link do pakietu django: django-simple-captcha

Odpowiedz

15

Oto realizacja pracy w javascript:

$(function() { 
    // Add refresh button after field (this can be done in the template as well) 
    $('img.captcha').after(
      $('<a href="#void" class="captcha-refresh">Refresh</a>') 
      ); 

    // Click-handler for the refresh-link 
    $('.captcha-refresh').click(function(){ 
     var $form = $(this).parents('form'); 
     var url = location.protocol + "//" + window.location.hostname + ":" 
        + location.port + "/captcha/refresh/"; 

     // Make the AJAX-call 
     $.getJSON(url, {}, function(json) { 
      $form.find('input[name="captcha_0"]').val(json.key); 
      $form.find('img.captcha').attr('src', json.image_url); 
     }); 

     return false; 
    }); 
}); 

Następnie wystarczy dodać trochę CSS dla klasy captcha-refresh, może umieszczamy obraz w <a> i jesteś gotowy do pracy!

+0

dzięki! to zrobiło :) – csharpnewbie

+0

Dziękuję bardzo, ten kod działa również dla mnie !!! – zhihong

+0

dzięki: D tego właśnie szukam –