Webasyst, возвращение к форме обратной связи после отправки сообщения

4 июня 2019

В Webasyst, возвращение к форме обратной связи (не наверх страницы) после отправки сообщения можно сделать так 

Задаете якорь, например

<span id="lt"></span>

и в form method="post" отправляете на этот якорь после отправки сообщения

<form method="post" action="#lt">

Вот готовый пример формы обратной связи с возвращением к ней после отправки сообщения

<style>
    .wa-form { float: left; margin: 10px 0; overflow: visible; }
    .wa-form .wa-field { clear: left; margin: 0; padding-top: 3px; }
    .wa-form .wa-field .wa-name { float: left; width: 155px; padding-top: 0.05em; padding-bottom: 10px; font-size: 0.95em; }
    .wa-form .wa-field .wa-value { margin-left: 180px; margin-bottom: 5px; position: relative; }
    .wa-form .wa-field .wa-value.wa-submit { margin-top: 0px; }
    .wa-form .wa-field .wa-value input[type="text"], .wa-form .wa-field .wa-value input[type="email"], .wa-form .wa-field .wa-value input[type="password"] { width: 30%; min-width: 400px; margin: 0; }
    .wa-form .wa-field .wa-value textarea { min-width: 400px; height: 70px; }
    .wa-form .wa-captcha { padding: 7px 0 10px; display:none}
    .wa-form .wa-captcha p { clear: left; margin: 0; }
    .wa-captcha img { float: left; margin-right: 5px; margin-top: -8px; }
    .wa-captcha .wa-captcha-refresh { color: #AAAAAA; font-size: 0.8em; text-decoration: underline; }
</style>
<span id="lt"></span>
{$errors = array()}
{$wa->storage(['captcha', $wa->app()], '')}
{if $wa->post("send") and $wa->sendEmail("", $errors)}
<h1>Спасибо!</h1>
<p>Ваше сообщение было отправлено.</p>
{else}
<div class="wa-form">
    <form method="post" action="#lt">
        <div class="wa-field">
            <div class="wa-name">Имя:</div>
            <div class="wa-value"><input name="name" type="text" value="{$wa->post(" name")|escape}"=""></div>
                </div>
                <div class="wa-field">
                <div class="wa-name">Email:</div>
                <div class="wa-value">
                    <input {if="" !empty($errors.email)}class="wa-error" {="" if}="" name="email" type="email" value="{$wa->post(" email")|escape}"="">
                {if !empty($errors.email)}<br><em class="wa-error-msg">{$errors.email}</em>{/if}
            </div>
        </div>
        <div class="wa-field">
            <div class="wa-name">Сообщение:</div>
            <div class="wa-value">
                <input type="hidden" name="subject" value="Запрос с сайта">
                <textarea {if="" !empty($errors.body)}class="wa-error" {="" if}="" name="body">{$wa->post("body")|escape}</textarea>
                {if !empty($errors.body)}<br><em class="wa-error-msg">{$errors.body}</em>{/if}
            </div>
        </div>
        <div class="wa-field">
            <div class="wa-value">
                {$wa->captcha(!empty($errors.captcha))}
                {if !empty($errors.captcha)}<br><em class="wa-error-msg">{$errors.captcha}</em>{/if}
            </div>
        </div>
        {$agreement_link = ""}
        {if $agreement_link}
        <div class="wa-field">
            <div class="wa-value">
                <input type="hidden" name="agree_to_terms" value="">
                <label>
                    <input type="checkbox" name="agree_to_terms" value="1" {if="" $wa-="">post("agree_to_terms")} checked{/if}>
                    Я принимаю условия <a href="{$agreement_link|escape}" target="_blank">политики обработки персональных данных</a>
                    {if !empty($errors.agree_to_terms)}<br><em class="wa-error-msg">{$errors.agree_to_terms}</em>{/if}
                </label>
            </div>
        </div>
        {/if}
        <div class="wa-field">
            <div class="wa-value wa-submit">
                {if !empty($errors.all)}<br><em class="wa-error-msg">{$errors.all}</em><br>{/if}
                <input type="submit" value="Отправить" name="send" class="btn btn-default btm-lg btn-block">
            </div>
        </div>
    </form>
</div>
{/if}