Первоначально эта ветка заставила меня поверить, что простого ответа нет, но после изучения библиотеки ajax Recaptcha я могу сказать, что это неправда! TLDR, рабочий jsfiddle: http://jsfiddle.net/Vanit/Qu6kn/
Можно перезаписать обратные вызовы Recaptcha, чтобы сделать с вызовом все, что вы захотите. Вам даже не нужен прокси-div, потому что с перезаписью код DOM не будет выполняться. Вызывайте Recaptcha.reload () всякий раз, когда вы хотите снова вызвать обратные вызовы.
function doSomething(challenge){
$(':input[name=recaptcha_challenge_field]').val(challenge);
$('img.recaptcha').attr('src', '//www.google.com/recaptcha/api/image?c='+challenge);
}
//Called on Recaptcha.reload()
Recaptcha.finish_reload = function(challenge,b,c){
doSomething(challenge);
}
//Called on page load
Recaptcha.challenge_callback = function(){
doSomething(RecaptchaState.challenge)
}
Recaptcha.create("YOUR_PUBLIC_KEY");