Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

CFormValidator

00 голосов
1
Здравствуйте

Приведите пожалуйста пример работа с классом CFormValidator.
Меня особо интересует как можно привезать валидатор к полю веб-формы.
спросил 18 Сен, 13 от Kera (280 баллов)

1 Ответ

00 голосов
1. Создаем валидатор, например:
/bitrix/modules/form/validators/val_phones.php
Код
<?
CModule::IncludeModule("form");
IncludeModuleLangFile(__FILE__);

class CFormValidatorPhonesNumber
{
    function GetDescription()
    {
        return array(
            "NAME" => "phones_number",
            "DESCRIPTION" => "Номера телефонов", 
            "TYPES" => array("text", "textarea"), 
            "HANDLER" => array("CFormValidatorPhonesNumber", "DoValidate")
        );
    }

    function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
    {
        global $APPLICATION;
        $arEnabledSymbols = array(" ", ",", "-", "(", ")", ";", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+");
        foreach ($arValues as $value)
        {
            $isCorrect = true;
            for($i = 0; $i<strlen($value);$i++)
            {
                if(!in_array($value[$i], $arEnabledSymbols))
                {
                    $isCorrect = false;
                    break;
                }
            }
            if(!$isCorrect)
            {
                $APPLICATION->ThrowException("Поле \"#FIELD_NAME#\": заполненно некорректно!");
                return false;
            }
        }   
        return true;
    }
}

AddEventHandler("form", "onFormValidatorBuildList", array("CFormValidatorPhonesNumber", "GetDescription"));
?> 


2. Подключаем
/bitrix/php_interface/init.php
Код
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/validators/val_phones.php");
ответил 22 Сен, 13 от Run (1,300 баллов)

Связанных вопросов не найдено