AjaxForm + FormIt отправляет письмо всегда
Использую хук math для антиспама. На фронтэнде валидирует правильно — показывает ошибки и т.д.
Но FormIt постоянно отправляет сообщения, даже если на фронте валидация не правильная. В логах ничего нет.
На фронте
Так всё заработало:
Но FormIt постоянно отправляет сообщения, даже если на фронте валидация не правильная. В логах ничего нет.
На фронте
<div class="form-group">
<label class="control-label" for="af_math">Сколько будет [[!+fi.op1]] [[!+fi.operator]] [[!+fi.op2]]?</label>
<div class="controls">
<input id="af_math" class="form-control" rows="5" type="text" name="math" value="[[+fi.math]]"/>
<input type="hidden" name="op1" value="[[!+fi.op1]]" />
<input type="hidden" name="op2" value="[[!+fi.op2]]" />
<input type="hidden" name="operator" value="[[!+fi.operator]]" />
<span class="error_math">[[!+fi.error.math]]</span>
</div>
</div>
Вызов AjaxForm [[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm.example`
&hooks=`email,math`
&emailSubject=`Обращение с сайта`
&emailTo=`it@domen.ru`
&validate=`name:required,email:required,message:required,math:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
&emailFrom=`[[++mail_smtp_user]]`
&emailTpl=`tplEmailFeedback`
]]
UPD: Так всё заработало:
&hooks=`math,email`
Комментарии: 2
На сколько мне известно капчи работают так:
Генерируют картинку перед выводом формы, результат капчи сохраняется в сессиях, и при вводе данных — идет сверка по сессии.
Генерируют картинку перед выводом формы, результат капчи сохраняется в сессиях, и при вводе данных — идет сверка по сессии.
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm.example`
&preHooks=`math`
&hooks=`email,math`
&emailSubject=`Обращение с сайта`
&emailTo=`it@domen.ru`
&validate=`name:required,email:required,message:required,math:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
&emailFrom=`[[++mail_smtp_user]]`
&emailTpl=`tplEmailFeedback`
]]
• «рreHook» задается через свойство «preHooks» в сниппете FormIt, который выполняется при загрузке формы. Полезно для предварительной загрузки значений.
• обычный хук, задается через свойство «hooks» в сниппете FormIt, который выполняется после проверки формы. Пригодится для настраиваемой пост-обработки.
&hooks=`email,math`
У вас сначала выполняется хук email, а потом math. Поменяйте местами
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.