2013-09-24 25 views
5

Tôi đang sử dụng ứng dụng django-simple-captcha cho trang web dựa trên django của mình, tôi có thể tích hợp trường biểu mẫu captcha vào biểu mẫu của tôi, nhưng vấn đề là, cách thế nào để tôi tạo một nút gọi Ajax làm mới để làm mới hình ảnh xác thực trên nhấp chuột? Các tài liệu cho các ứng dụng không phải là rất rõ ràng, và tôi đã cố gắng làm theo các ví dụ được đưa ra trong tài liệu nhưng nó không hoạt động. Xin hãy giúp tôi về vấn đề này?Cách tạo Ajax refresh cho django-simple-captcha

EDIT: Dưới đây là các liên kết đến các gói django: django-simple-captcha

Trả lời

15

Dưới đây là một việc thực hiện làm việc trong 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; 
    }); 
}); 

Sau đó, bạn chỉ cần thêm một số CSS cho lớp captcha-refresh, có lẽ đặt một hình ảnh trong các <a> và bạn tốt để đi!

+0

cảm ơn! này đã làm điều đó :) – csharpnewbie

+0

Cảm ơn rất nhiều, mã này làm việc cho tôi cũng !!! – zhihong

+0

cảm ơn: D đây là những gì tôi đang tìm kiếm –