Почему моя HTML-форма Netlify работает, но не перенаправляет на страницу подтверждения? - PullRequest
0 голосов
/ 09 марта 2019

Я работаю над сайтом на базе Hugo, который я развертываю с Netlify. Я хотел бы включить форму, используя поддержку форм Netlify ( docs ).

Моя форма выглядит так:

<form id="contact-form" name="contact-form" data-netlify="true" method="post" role="form" action="{{ .URL }}formsuccess">
  <div class="form-group">
    <input type="text" placeholder="Name" class="form-control" name="name" id="name" required>
  </div>
  <div class="form-group">
    <input type="email" placeholder="Email" class="form-control" name="email" id="email" required>
  </div>
  <div class="form-group">
    <input type="text" placeholder="Subject" class="form-control" name="subject" id="subject">
  </div>
  <div class="form-group">
    <textarea rows="6" placeholder="Message" class="form-control" name="message" id="message" required></textarea>
  </div>
  <div id="cf-submit">
    <button type="submit" id="contact-submit" class="btn btn-transparent">Submit</button>
  </div>
</form>

Теперь эта форма работает. Но Netlify говорит, что вы можете указать атрибут действия, чтобы создать ссылку для кнопки отправки. Это та часть, которую я не могу заставить работать: я остаюсь на странице формы и могу бесконечно нажимать кнопку отправки (отправляя форму снова и снова).

  • Я ввел путь моего атрибута действия в простой привязке, и там он работает.
  • Я также пытался без атрибута действия. Согласно документации, это должно ссылаться на общую страницу подтверждения, но это не работает и для меня.

Как я могу перенаправить своих пользователей на страницу подтверждения после отправки?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

С помощью службы поддержки Netlify я выяснил проблему.

Путь действия должен быть реальным.В моем случае это должно быть в публичном каталоге сайта.Я пытался заставить его работать с URL с суффиксом (example.com/en/pathname) или с частичным html (как используют многие шаблоны Hugo).Это невозможно.

Когда вы указали путь действия, вы больше не сможете использовать стандартный путь Netlify, потому что:

(Netlify's) "система сохраняет ваш путь действия внаша база данных и будет продолжать использовать ее, пока вы не переопределите ее с другим путем действия. "

Я также отметил, что форму необходимо отправить с помощью

<input type="submit">

Использование <button type="submit"></button> не работал.

0 голосов
/ 09 марта 2019

Путь должен быть относительно корня сайта, начиная с /.

Убедитесь, что код в генераторе статического сайта соответствует приведенному выше правилу.

action="{{ .URL }}formsuccess"

должен выглядеть примерно так:

action="/path/to/formsuccess"

...