Стандартная captcha Bitrix может плохо читаться и требуется её обновить без перезагрузки страницы.
Обновить captcha можно с помощью JS. Для этого нужно изменить код компонента, использующего captcha, следующим образом:
/* CAPTHCA */
if ($arResult["CAPTCHA_CODE"] <> ''):
?>
<input
type="hidden"
name="captcha_code"
value="<?= $arResult["CAPTCHA_CODE"] ?>"/>
<img
id="captcha_image"
src="/bitrix/tools/captcha.php?captcha_sid=<?= $arResult["CAPTCHA_CODE"] ?>">
<small>Нажмите на картинку, что бы обновить</small>
<input
type="text"
size="30"
name="captcha_word"
tabindex="<?= $tabIndex++; ?>"
placeholder="Символы с картинки"
autocomplete="off"/>
<script>
document.addEventListener('DOMContentLoaded', function () {
var captchaImage = document.getElementById('captcha_image');
if (captchaImage) {
captchaImage.addEventListener('click', function () {
// Генерация случайного числа, чтобы избежать кеширования изображения
var randomNum = Math.random();
var newSrc = '/bitrix/tools/captcha.php?captcha_sid=<?= $arResult["CAPTCHA_CODE"] ?>&' + randomNum;
captchaImage.src = newSrc;
});
}
});
</script>
<?
endif;
/* end CAPTHCA */
