contact
生成一个用于向商家提交电子邮件的表格。
表单输入
| 输入项 | 类型 | 字段名 | 是否 必填 |
|---|---|---|---|
| contact[email] | yes | ||
| attributes | any | attribute[key] | no |
提示
本地化语言写在 input 标签的 title 属性中,然后通过 JavaScript 获取并提交到指定的字段 _translate 中。
例子
{{#form 'contact' id="ContactForm" class="contact-form"}}
{{#if form.posted_successfully}}
<div>提交成功</div>
{{/if}}
{{#if form.errors}}
<div>{{ form.errors.messages }}</div>
{{/if}}
<div class="contact__fields">
<div class="field">
<label for="ContactForm-email">邮箱</label>
<input type="email" id="ContactForm-email" name="contact[email]" title="邮箱" placeholder="请输入邮箱">
</div>
<div class="field">
<label for="ContactForm-birthday">生日</label>
<input type="date" id="ContactForm-birthday" name="attribute[birthday]" title="生日" placeholder="请输入生日">
</div>
<div>
<input class="contact__button" type="submit" value="提交">
</div>
</div>
{{/form}}
配合使用
以上代码需要结合下面的脚本一起使用
<script>
document.querySelector('.contact__button').addEventListener('click', (e) => {
const form = document.querySelector('#ContactForm')
const inputs = form.querySelectorAll('input')
const translateInput = form.querySelector('input[name=_translate]')
const translate = {}
for (let i = 0; i < inputs.length; i++) {
const input = inputs[i]
const title = input.getAttribute('title')
const name = input.getAttribute('name')
if (/contact|attribute\[[\w]+\]/.test(name)) {
translate[name] = title
}
}
translateInput.setAttribute('value', JSON.stringify(translate))
})
</script>
这篇文章对你有帮 助吗?
SHOPLINE