Вот код:
<script src="https://captcha-api.yandex.ru/captcha.js" defer></script>
<div id="captcha-container" class="smart-captcha"
style="height: 100px"
id="captcha-container"
class="smart-captcha"
data-sitekey="4uJL8Ux12Ai5TFZtPamOIgL4evbtTq93Veqo1wnv"
data-hl="en"
data-callback="yandex_captcha"
>
<input type="hidden" name="smart-token" id="smart_token" value="dQ0">
</div>
<script>
function yandex_captcha() {
var smart_token = $('#smart_token').val();
console.log(smart_token);
}
</script>
На выходе получаю
undefined
делаю как в документации яндекса
<div id="captcha-container" class="smart-captcha" ...>
<input type="hidden" name="smart-token" value="<token>">
...
</div>
Разобрался, рабочий код:
<script src="https://captcha-api.yandex.ru/captcha.js" defer></script>
<div id="captcha-container" class="smart-captcha"
style="height: 100px"
id="captcha-container"
class="smart-captcha"
data-sitekey="<ключ_клиента>"
data-hl="en"
data-callback="yandex_captcha"
>
</div>
<script>
function yandex_captcha() {
var smart_token = document.querySelector('input[name="smart-token"]').value;
console.log(smart_token);
}
</script>