Обратная связь: Сохранение значений полей при возникновении ошибок отправки — различия между версиями
Arnica (обсуждение | вклад) (Новая страница: «'''''Проблема: при отправке сообщения из формы обратной связи с некорректно заполненными по…») |
Arnica (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
Правим шаблон '''tpls/data/reflection/webforms.tpl''' | Правим шаблон '''tpls/data/reflection/webforms.tpl''' | ||
− | В блоке '''form_block''' необходимо добавить в тег '''<form>''' параметры id="webform" и '''onsubmit="saveFormData(this); return true;"'''. | + | В блоке '''form_block''' необходимо добавить в тег '''<form>''' параметры '''id="webform"''' и '''onsubmit="saveFormData(this); return true;"'''. |
Ниже тега '''</form>''' добавим следующий скрипт: | Ниже тега '''</form>''' добавим следующий скрипт: | ||
Версия 10:17, 29 марта 2010
Проблема: при отправке сообщения из формы обратной связи с некорректно заполненными полями после сообщения об ошибке значения полей исчезают.
Чтобы введенные ранее значения полей оставались после перезагрузки страницы, предлагаем следующее решение для макроса %webforms add()%
Правим шаблон tpls/data/reflection/webforms.tpl
В блоке form_block необходимо добавить в тег <form> параметры id="webform" и onsubmit="saveFormData(this); return true;". Ниже тега </form> добавим следующий скрипт:
<script type="text/javascript"> restoreFormData(document.getElementById('webform')); </script>
Если в шаблон ранее не вносилось поправок, блок будет выглядеть следующим образом:
$FORMS['form_block'] = <<<END <form enctype="multipart/form-data" method="post" action="/webforms/send/" id="webform" onsubmit="saveFormData(this); return true;"> <input type="hidden" name="system_form_id" value="%form_id%" /> <input type="hidden" name="system_template" value="%template%" /> %address_select% %groups% </form> <script type="text/javascript"> restoreFormData(document.getElementById('webform')); </script> END;
Теперь при возникновении ошибок при отправке сообщения значения полей будут сохраняться.
Добавленные функции находятся в файле js/guest.js, по-этому, что бы функционал работал, в шаблоне страницы этот скрипт должен вызываться. Вызов этого скрипта осуществляет макрос %system includeQuickEditJs()%