'formTpl' => '@CODE:
<form class="form-validate" data-id="ajax_form">
<fieldset class="margin-bottom-md">
<div class="margin-bottom-xs">
<div class="grid gap-xs">
<div class="col-4@md form-validate__input-wrapper form-validate__input-wrapper[+name.errorClass+] form-validate__input-wrapper[+name.requiredClass+]">
<input class="form-control width-100% form-control[+name.errorClass+] form-control[+name.requiredClass+]" type="text" name="name" value="[+name.value+]" placeholder="Ваше имя *" data-theme="default" required>
[+name.error+]
</div>
<div class="col-4@md form-validate__input-wrapper form-validate__input-wrapper[+phone.errorClass+] form-validate__input-wrapper[+phone.requiredClass+]">
<input class="form-control width-100% form-control[+phone.errorClass+] form-control[+phone.requiredClass+]" type="text" name="phone" value="[+phone.value+]" placeholder="Ваш номер *" data-theme="default" required>
[+phone.error+]
</div>
<div class="col-4@md form-validate__input-wrapper form-validate__input-wrapper[+email.errorClass+]">
<input class="form-control width-100% form-control[+email.errorClass+]" type="email" name="email" value="[+email.value+]" placeholder="E-mail" data-theme="default">
[+email.error+]
</div>
<!-- Название текущей страницы -->
<input type="hidden" name="pagetitle" value="[+pagetitle+]">
<input type="hidden" name="formid" value="feedbackForm">
</div>
</div>
<div class="form-validate__input-wrapper form-validate__input-wrapper[+comment.errorClass+] form-validate__input-wrapper[+comment.requiredClass+]">
<textarea class="form-control form-control[+comment.errorClass+] form-control[+comment.requiredClass+] width-100%" name="comment" value="[+comment.value+]" minlength="10" placeholder="Комментарий..." data-theme="default"></textarea>
[+comment.error+]
</div>
</fieldset>
<div class="text-right padding-top-sm border-top">
<button class="btn btn--primary" formnovalidate="">Отправить заявку</button>
</div>
</form>
',
'rules' => [
'name'=> [
'required'=>'*Вы не ввели имя',
"minLength" => [
"params" => 2,
"message" => "*Имя не должно быть короче 2-х символов",
],
"maxLength" => [
"params" => 30,
"message" => "*Имя не должно быть длиннее 30 символов",
],
'matches'=> [
// Разрешаем буквы любого языка, цифры, пробел, дефис, апостроф, подчеркивание
'params' => "/^[\\pL\\d\\s\\-'._]+$/uD",
'message'=>'Введите имя правильно',
],
],
'phone' => [
'required' => '*Вы не ввели телефон',
'phone' => 'Телефон неправильный',
],
/* 'phone' => [
'required' => '*Вы не ввели телефон',
'matches'=> [
// Разрешаем необязательный плюс, цифры, пробел, дефис, круглые скобки
'params' => "/^\+?[0-9\s\-()]{7,15}$/",
'message'=>'Введите номер правильно'
],
], */
"comment" => [
"required" => "*Вы не ввели комментарий",
"lengthBetween" => [
"params" => [10, 1000],
"message" => "*Комментарий должен содержать от 10 до 1000 букв",
],
],
],
'errorClass' => '--error',
'requiredClass' => '--error',
'errorTpl' => '@CODE:
<div role="alert" class="form-validate__error-msg bg-error bg-opacity-20% padding-x-xs padding-y-2xs radius-md text-xs color-contrast-higher margin-top-2xs">
<p>[+message+]</p>
</div>',
'messagesTpl' => '@CODE:',
'filterer' => '\FormLister\Filters',
Советую ознакомиться: FormLister
Обсуждают сегодня