Несколько reCAPTCHA на одной странице ASP.Net

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

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

Спасибо! ВТ


person Donnie Thomas    schedule 23.06.2009    source источник
comment
Вы можете использовать только одну форму для входа и регистрации.   -  person Brian    schedule 23.06.2009


Ответы (6)


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

Это может помочь.

person Shoban    schedule 23.06.2009
comment
Спасибо Shoban за упоминание об этом. Это просто спасло мой день. У меня были изображения капчи на двух разных панелях обновлений, то есть две капчи на одной странице. Интересно, что капча в одной панели обновлений обновлялась при нажатии кнопки, а другая капча не менялась после нажатия кнопки. Итак, что я сделал, так это то, что в EndRequest я вызвал функцию refreshcaptcha, и она добилась цели. - person user1254053; 30.10.2014

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

person Greg    schedule 23.06.2009

Первоначально эта ветка привела меня к мысли, что простого ответа не существует, но, покопавшись в 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");
person Vanit    schedule 17.02.2014

Теперь это можно легко сделать с помощью явного создания recaptcha. Смотрите мой ответ здесь:

Как показать несколько рекапч на одна страница?

person Hüseyin Yağlı    schedule 24.01.2015

Не так уж сложно загружать каждую Recaptcha только при необходимости, используя Recaptcha AJAX API, см. мой пост здесь:

Как показать несколько рекапч на одна страница?

person siliconrockstar    schedule 07.06.2012

у капчи есть элемент img #recaptcha_challenge_image, поэтому после того, как вы установите recaptcha в одном div, скажите «regCaptch», получите этот img src attr, установите другой html div captcha на старый html, а затем установите #recaptcha_challenge_image src на src вы получаете, вот рабочий пример

    var reCaptcha_src = $('#recaptcha_challenge_image').attr('src');
    $('#texo').html($('#regCaptch').html());
    $('#recaptcha_challenge_image').attr('src',reCaptcha_src);
person Amr Najip    schedule 14.09.2015