我正在使用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()放在括号内。

09-25 10:27