2009-06-23 3 views
2

Можно добавить несколько reCAPTCHAS в одну форму? Я попытался сделать это, даже предоставив несколько идентификаторов reCAPTCHAS, но когда я загружаю страницу в браузере, отображается только одна из них.Несколько reCAPTCHA на одной странице ASP.Net

Это по дизайну? Мне нужны два reCAPTCHAS, потому что один для Login, а другой для формы Register, который будет отображаться на той же странице.

Спасибо! WT

+1

вы можете использовать только одну форму как для входа в систему и зарегистрироваться. – Brian

ответ

1

После быстрого поиска в Google кажется, что в настоящее время это невозможно. One suggestion Я видел, как всплывал модальный recaptcha, как пользователь отправляет форму. ondemandcaptcha for Ruby.

2

Только одна Cpatcha поддерживается на странице в любое время. Что вы можете сделать, это использовать AJAX и lod captcha после загрузки формы.

This might of some help.

+1

Спасибо Шобан за это. Это просто спасло мой день. У меня были изображения captcha в двух разных панелях обновления, т. Е. Два капчей на одной странице. Интересно, что captcha в одной панели обновления обновлялся при отправке кнопки, но после того, как нажал кнопку, другой код не изменился. Так что я сделал это на EndRequest, я назвал функцию refreshcaptcha, и это сделало трюк. – user1254053

1

Я был изначально вести по этой теме считаю, что нет простого ответа, но после того, как я выкопал библиотеку recaptcha ajax, я могу сказать вам, что это неверно! TLDR, рабочий jsfiddle: http://jsfiddle.net/Vanit/Qu6kn/

Можно перезаписать ответные вызовы Recaptcha, чтобы делать все, что вы хотите, с вызовом. Вам даже не нужен прокси-сервер, потому что с перезаписыванием код 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"); 
0

капча есть элемент #recaptcha_challenge_image IMG элемента, поэтому после того, как вы установите Recaptcha в одном DIV сказать «regCaptch», получает, что IMG SRC Аттрибут , установите другой искаженный DIV HTML к старому HTML, а затем установить #recaptcha_challenge_image SRC в ЦСИ вы получите, вот рабочий пример

var reCaptcha_src = $('#recaptcha_challenge_image').attr('src'); 
    $('#texo').html($('#regCaptch').html()); 
    $('#recaptcha_challenge_image').attr('src',reCaptcha_src); 
Смежные вопросы