2013-09-24 6 views
5

Ich benutze die Django-Simple-Captcha-App für meine Django-basierte Website, ich bin in der Lage, das Captcha-Formular-Feld in mein Formular zu integrieren, aber das Problem ist, wie erstelle ich eine Schaltfläche, die Ajax refresh aufruft, um das Captcha-Bild beim Klick zu aktualisieren? Die Dokumentation für die App ist nicht sehr klar, und ich habe versucht, dem Beispiel in der Dokumentation zu folgen, aber es funktioniert nicht. Bitte helfen Sie mir zu diesem Thema?So erstellen Sie Ajax Refresh für Django-Simple-Captcha

EDIT: Hier ist der Link zum django Paket: django-simple-captcha

Antwort

15

Hier ist eine funktionierende Implementierung in 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; 
    }); 
}); 

Dann brauchen Sie nur einige CSS für die Klasse captcha-refresh hinzuzufügen, legen Sie vielleicht ein Bild in der <a> und du bist gut zu gehen!

+0

danke! das tat es :) – csharpnewbie

+0

Vielen Dank, dieser Code funktioniert auch für mich !!! – zhihong

+0

danke: D das ist was ich suche –