2016-08-04 5 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 в одном файле:

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

В соответствии с их документацией (https://www.emailjs.com/docs/api-reference/emailjs-send/) вы можете использовать обещание для метода send() - но неясно, если это возможно с помощью метода sendForm(). Ты должен попытаться. Если sendForm можно использовать с обещанием - разместите там reset(). Если нет - вам придется использовать метод send() и подготовить из объекта формы объект JSON (3-й аргумент).

+0

Спасибо за ваш вклад. Я смог заставить его работать, используя .then (reset()). – mur7ay

1

С комментарием Роберта C, я был в состоянии заставить его сбросить и подать правильно EmailJS, выполнив следующие действия:

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

использованием .then() и размещения reset() в скобках.

+0

Вы могли бы позволить ему опубликовать свой собственный ответ ... – Mistalis

Смежные вопросы