Tôi có một hình thức đăng ký với AJAX để tôi muốn làm mới hình ảnh Recaptcha bất cứ khi nào xảy ra lỗi (tức là tên người dùng đã được sử dụng).
Tôi đang tìm mã tương thích với ReCaptcha để tải lại bằng JavaScript.
Tôi có một hình thức đăng ký với AJAX để tôi muốn làm mới hình ảnh Recaptcha bất cứ khi nào xảy ra lỗi (tức là tên người dùng đã được sử dụng).
Tôi đang tìm mã tương thích với ReCaptcha để tải lại bằng JavaScript.
Câu trả lời:
Quan trọng: Phiên bản 1.0 của API reCAPTCHA không còn được hỗ trợ, vui lòng nâng cấp lên Phiên bản 2.0.
Bạn có thể sử dụng grecaptcha.reset (); để thiết lập lại hình ảnh xác thực.
Nguồn: https://developers.google.com/recaptcha/docs/verify#api-request
Đối với reCaptcha v2, sử dụng:
grecaptcha.reset();
Nếu bạn đang sử dụng reCaptcha v1 ( có thể không ):
Recaptcha.reload();
Điều này sẽ làm nếu có một Recaptcha đã được tải trên window
.
(Được cập nhật dựa trên nhận xét của @ SebiH bên dưới.)
grecaptcha.reset();
( documenation )
grecaptcha.reset();
cho các ứng dụng phản ứng của mình và nó hoạt động hoàn hảo
if (window.grecaptcha) grecaptcha.reset();
Nếu bạn đang sử dụng phiên bản 1
Recaptcha.reload();
Nếu bạn đang sử dụng phiên bản 2
grecaptcha.reset();
grecaptcha.reset(opt_widget_id)
Đặt lại tiện ích reCAPTCHA. Một id widget tùy chọn có thể được thông qua, nếu không thì chức năng đặt lại widget đầu tiên được tạo. (từ trang web của Google)
Thử cái này
<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
function showRecaptcha() {
Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
theme: 'red',
callback: Recaptcha.focus_response_field
});
}
</script>
<div id="captchadiv"></div>
Nếu bạn gọi showRecaptcha, captchadiv sẽ được điền với một thể hiện recaptcha mới.
Hoặc bạn chỉ có thể mô phỏng một nhấp chuột vào nút refresh
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
Recaptcha
và grecaptcha
cả hai đều không được xác định trên trang của tôi. Điều này làm việc cho tôi, với một sửa đổi nhỏ:if( $("#recaptcha_reload").length > 0 ){ ....
Đối với người dùng AngularJS:
$window.grecaptcha.reset();
Đối với phiên bản mới của reCaptcha v2, hãy sử dụng:
grecaptcha.reset();
nếu bạn đang sử dụng recaptcha 2.0 mới, hãy sử dụng mã này: cho mã phía sau:
ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);
cho javascript đơn giản
<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>