为什么我的Netlify html表单可以工作,但不能重定向到确认页面?

时间:2019-03-09 15:48:12

标签: html hugo netlify

我正在基于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表示您可以指定action属性来创建“提交”按钮的链接。这是我无法工作的部分:我停留在表单页面上,可以单击无限提交(一次又一次提交表单)。

  • 我已经在一个简单的锚点中输入了action属性的路径,并且确实可以正常工作。
  • 我也尝试过不带action属性。根据文档,这应该链接到通用确认页面,但这对我也不起作用。

提交后如何将我的用户重定向到确认页面?

2 个答案:

答案 0 :(得分:0)

  

该路径必须相对于站点根,以/开头。

确保静态网站生成器中的代码符合上述规则。

action="{{ .URL }}formsuccess"

需要看起来类似于:

action="/path/to/formsuccess"

答案 1 :(得分:0)

在Netlify的支持团队的帮助下,我找出了问题所在。

动作路径必须是实际路径。就我而言,它必须位于网站的公共目录中。我试图使其与带有后缀(example.com/en/pathname)的URL或与部分html(如许多Hugo模板使用)一起使用。这是不可能的。

放置动作路径后,将无法再使用Netlify的默认路径,因为:

  

(Netlify's)系统将您的操作路径存储在我们的数据库中,并且   继续使用它,直到用其他操作路径覆盖它为止。”

我还指出,该表格必须与

一起提交
<input type="submit">

使用<button type="submit"></button>无效。