我使用EmailJS(emailjs.com)进行表单提交,虽然我能够正确发送,但实际上当我使用reset()方法时它会停止发送。这是我的代码:
<div class="topForm">
<form id="myform" onsubmit="emailjs.sendForm('mailjet', 'city_request', this); return false;" method="post">
<div class="form-group">
<input type="email" class="email" id="userEmail" placeholder="Enter email" name="userEmail">
<button type="submit" id="userEmailButton" class="btn btn-primary">Sign up</button>
</div>
</form>
</div>
通过上述内容,我可以在EmailJS的日志部分查看提交的信息。我的问题是当我这样做时:
<form id="myform" onsubmit="emailjs.sendForm('mailjet', 'city_request', this).reset(); return false;" method="post">
添加.reset()会在提交时清除表单,但不会将其发送到EmailJS。另外,我尝试在一个文件中使用JavaScript,如下所示:
function myFunction() {
var form = document.getElementById('myform');
form.reset();
}
但显然它也不起作用。有谁知道发生了什么?我一直试图让表单与reset()方法同时工作,但根本没有运气。
答案 0 :(得分:1)
根据Robert C的评论,我可以通过执行以下操作重置并正确提交给EmailJS:
<form id="myform" onsubmit="emailjs.sendForm('mailjet', 'city_request', this).then(reset()); return false;" method="post">
使用.then()
并将reset()
放在括号内。
答案 1 :(得分:0)
根据他们的文档(https://www.emailjs.com/docs/api-reference/emailjs-send/),您可以使用send()
方法的承诺 - 但不清楚sendForm()
方法是否可以使用它。你应该试试。如果sendForm
可以与承诺一起使用 - 将reset()
放在那里。如果不是 - 您将不得不使用send()
方法并从表单元素中准备好JSON对象(3-rd参数)。