我正在使用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()方法同时工作,但是一点都不幸运。
最佳答案
有了Robert C的评论,我可以通过执行以下操作来重置它并正确提交给EmailJS:
<form id="myform" onsubmit="emailjs.sendForm('mailjet', 'city_request', this).then(reset()); return false;" method="post">
使用
.then()
并将reset()
放在括号内。