Squarespace
Cole um formulário HTML em um code block do Squarespace. HTML puro funciona em todos os planos; adicionar JavaScript exige o plano Core ou superior.
O Form block do Squarespace guarda os envios no Squarespace e os manda para as conexões que ele suporta. Ele não tem configuração para uma URL de action externa. Um Code block no modo HTML renderiza o seu próprio formulário na página, então ele pode enviar direto para o Ikiform.
| Plano | O que um code block consegue rodar |
|---|---|
| Basic | HTML e CSS. Scripts e iframes não são renderizados, então use o formulário simples. |
| Core, Plus, Advanced | HTML, CSS e JavaScript. Você pode adicionar a versão aprimorada. |
Adicione o code block
Insira um Code block
Edite a página, adicione um bloco e escolha Code. Defina Mode como HTML e desative Display Source; caso contrário, o formulário aparece como texto.
Cole o formulário
Code block <form id="contact" class="ikiform" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post"> <label>Name <input name="name" autocomplete="name" required></label> <label>Email <input name="email" type="email" autocomplete="email" required></label> <label>Message <textarea name="message" rows="5"></textarea></label> <input type="hidden" name="_redirect" value="https://example.com/thank-you"> <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden> <button type="submit" class="sqs-block-button-element">Send</button> <p role="status" data-status></p> </form> <style> .ikiform { display: grid; gap: 12px; max-width: 480px; } .ikiform label { display: grid; gap: 4px; } .ikiform input, .ikiform textarea { font: inherit; padding: 10px 12px; border: 1px solid currentColor; } </style>sqs-block-button-elementreaproveita o estilo de botão do seu site.font: inheritecurrentColorpegam a fonte e a cor de texto da seção, então o formulário combina com seções claras e escuras.Crie a página de agradecimento
Adicione uma página em Not linked para que ela fique fora da navegação e use a URL completa dela como
_redirect. Ou defina-a como Redirect after submit nas configurações do formulário e remova o input oculto.
_redirect só é seguido quando o formulário tem domínios permitidos que incluem o domínio da página. Sem eles, os visitantes veem a página de agradecimento hospedada do Ikiform.
Continuar na página (Core ou superior)
Para mostrar o resultado sem sair da página, cole este script abaixo do formulário, no mesmo code block. Ele envia com fetch, escreve a mensagem do Ikiform na linha de status abaixo do botão e ignora o _redirect. O formulário continua enviando normalmente se o script não carregar.
<script>
const form = document.querySelector("#contact");
const button = form.querySelector("button");
const status = form.querySelector("[data-status]");
form.addEventListener("submit", async (event) => {
event.preventDefault();
button.disabled = true;
status.textContent = "Sending";
try {
const response = await fetch(form.action, {
method: "POST",
headers: { Accept: "application/json" },
body: new FormData(form),
});
const result = await response.json();
const fields = Object.entries(result.ok ? {} : result.error.fields ?? {});
const problems = fields.map(([name, messages]) => name + ": " + messages[0]).join(". ");
status.textContent = result.ok ? "Thanks, we got it." : problems || result.error.message;
if (result.ok) form.reset();
} catch {
status.textContent = "Couldn't reach the server. Try again.";
} finally {
button.disabled = false;
}
});
</script>Os erros de campo são escritos na mesma linha, com o nome do campo na frente, como email: This field is required. Para ter uma mensagem abaixo de cada campo, use os espaços de JavaScript puro. Um formulário com a verificação de spam Ikiform deve manter a versão simples, já que envios com fetch recebem 403 challenge_required em vez da página de verificação.
Domínios permitidos
O Squarespace serve todo site em um domínio próprio da plataforma, além de qualquer domínio que você conecte.
| Onde o formulário roda | Adicione em Allowed domains |
|---|---|
| Domínio da plataforma | your-site.squarespace.com |
| Domínio conectado | example.com, que também cobre www.example.com |
- Nunca adicione
squarespace.comsozinho. Todo site naquele host corresponderia, inclusive os de outras pessoas.
Checklist de teste
- Abra a página em uma janela anônima. Code blocks podem não ser renderizados enquanto você está logado, mesmo que os visitantes os vejam.
- Envie o formulário no domínio da plataforma e no seu domínio conectado, e confirme que os dois envios aparecem no Ikiform.
- Confira se você chega à sua página de agradecimento em Not linked, e não à do Ikiform.
- No plano Basic, confirme que o formulário continua enviando. Ele não precisa de script.
Solução de problemas
| O que você vê | Por quê | Correção |
|---|---|---|
| O código aparece na página como texto | Display Source está ativado, ou Mode não é HTML | Defina Mode como HTML e desative Display Source. |
| O script aprimorado nunca roda | O site está no plano Basic, em que scripts em code blocks não são renderizados | Mantenha o formulário simples, ou faça upgrade para o Core. |
| A página de agradecimento do Ikiform em vez da sua | Sem domínios permitidos, ou o _redirect usa http: ou outro domínio | Adicione seus domínios, ou defina Redirect after submit. |
Os envios chegam no filtro de spam com origin_mismatch | A página que enviou não está nos domínios permitidos do formulário | Adicione o host da tabela acima. Com Reject escolhido, os mesmos envios recebem 403 origin_not_allowed. |
| O formulário parece sem estilo no editor, mas aparece certo para os visitantes | Code blocks nem sempre são renderizados enquanto você está logado | Confira a página em uma janela anônima. |