2016-08-04 18 views
0

フォーム送信にEmailJS(emailjs.com)を使用していますが、正しく送信できるようになっている間は、reset()メソッドを使用すると実際に送信が停止します。これは動作する私のコードです:投稿時にHTMLフォームをリセットする

<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を1つのファイルで以下のように使用しようとしました:

function myFunction() { 
    var form = document.getElementById('myform'); 
    form.reset(); 
} 

明らかにそれはどちらもうまくいきません。誰でも何が起こっているのか知っていますか?私はreset()メソッドと同時に動作するようにフォームを取得しようとしていますが、運は全くありません。

+1

'.then()'を使ってフォームの送信が成功した後にのみリセットを適用しようとしましたか:http://www.emailjs.com/docs/api-reference/emailjs-send/ –

+0

Wow。それに気づいてくれてありがとう、私はそれを完全に見渡し、私がそれを早く気づきたいと思う。私はあなたの提案と一緒に働くようになったので、もう一度感謝します! – mur7ay

+0

@RobertC正しい解決策として受け入れることができるように回答を提出しますか? – mur7ay

答えて

0

彼らの文書()によれば、send()メソッドには約束をすることができますが、sendForm()メソッドでも同じことが可能かどうかは不明です。試してみてください。 sendFormを約束して使用できる場合は、reset()をお持ちください。そうでない場合は、send()メソッドを使用し、フォーム要素からJSONオブジェクト(3番目の引数)を準備する必要があります。 .then()を使用し、括弧内reset()を置く

<form id="myform" onsubmit="emailjs.sendForm('mailjet', 'city_request', this).then(reset()); return false;" method="post"> 

:私はそれは次のようにしてリセットし、EmailJSに適切に提出してもらうことができたロバート・Cさんのコメント付き

+0

あなたのご意見ありがとうございます。 .then(reset())を使って動作させることができました。 – mur7ay

1

+0

あなたは彼に自分の答えを投稿させることができました... – Mistalis

関連する問題