@astrodeep

Как в битриксе вывести ошибки отдельных полей?

Здравствуйте в документации есть такой метод,
<?=$FORM->ShowFormErrors()?>
Но он выводит ошибки всех полей списком.
Есть ли возможность выводить ошибку отдельного поля?И есть ли возможность добавлять соответствующему input class='error'
  • Вопрос задан
  • 2380 просмотров
Пригласить эксперта
Ответы на вопрос 2
no_one_safe
@no_one_safe
Веб-форма (комплексный компонент)
В настройках есть параметр отвечающий за расширенный вывод ошибок:
"USE_EXTENDED_ERRORS" => "Y",
В result_modifier.php пробегаетесь по всем полям в которых есть ошибка (в $arResult["FORM_ERRORS"] ) и меняете у соответствующих вопросов html:
В result_modifier.php компонента form.result.new
if (is_array($arResult["FORM_ERRORS"])){
   foreach($arResult["FORM_ERRORS"] as $FIELD_SID => $BITRIX_ERROR_TEXT){
      $arQuestion = $arResult["QUESTIONS"][$FIELD_SID];
         if(strpos($arQuestion['HTML'],'class') !== false){
               $arQuestion['HTML'] = str_replace('class="','class="error ',$arQuestion['HTML']);
         }
         else{
               $arQuestion['HTML'] = str_replace('name=',' class="error" name=',$arQuestion['HTML']);
         }
      $arResult["QUESTIONS"][$FIELD_SID] = $arQuestion;
   }
}
Ответ написан
@cubania
Всю голову сломал из-за того, что класс не добавлялся. В коде в result_modifier.php нужно указывать не $arQuestion['HTML'], а $arQuestion['HTML_CODE'] и тогда класс "error" дописывается
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы