Очистить поля ввода при отправке

#javascript #html #forms #input-field

#javascript #HTML #формы #поле ввода

Вопрос:

Я пытаюсь очистить свои поля ввода после того, как пользователь нажимает «Отправить» с помощью MailChimp, хотя, похоже, у меня возникают проблемы с этим.

Я перепробовал множество вариантов, чтобы заставить это работать, и ничего не помогает. Вы можете мне помочь?

Заранее спасибо.

HTML

 <div class="mc-field-group">
    <div class="row">
        <div class="col-sm-6 col-md-6">
            <input type="text" placeholder="Type your name here..." 
                   value="" 
                   name="NOME" class="form-control input-box required pull- 
                   right" id="mce-NOME">
        </div>
        <div class="col-sm-6 col-md-6">
            <input type="text" placeholder="Type your email here..." 
                   value="" name="EMAIL" class="form-control input-box 
                   required pull-left" id="mce-EMAIL">
        </div>
    </div>
</div>
<div class="mc-field-group">
    <div class="row">
        <div class="col-sm-12">
            <textarea limit="1000" placeholder="Type your message here..." 
                      style="height: 100px; width: 500px;" value="" 
                      name="MENSAGEM" class="form-control textarea-box required" 
                      id="mce-MENSAGEM">
            </textarea>
        </div>
    </div>
</div>
  

JS

 $('#mc-embedded-subscribe-form').ajaxChimp({
callback: mailchimpCallback,
url: ""  
});

function mailchimpCallback(resp) {
 if (resp.result === 'success') {
    $('.subscription-success').html('<span class="icon_check_alt2"></span>'   ' Agradecemos por sua mensagem.<br />Entraremos em contato em breve.').fadeIn(1000);
    $('.subscription-error').fadeOut(500);

} else if(resp.result === 'error') {
    $('.subscription-error').html('<span class="icon_close_alt2"></span>'   'Oops... Houve um erro ao tentar enviar sua mensagem.<br/>Por favor, tente novamente em alguns minutos.').fadeIn(1000);
  }  
}
  

Комментарии:

1. вам нужно найти свой элемент формы и просто очистить его следующим образом document.getElementById("myForm").reset(); или jQuery $("myForm")[0].reset();

Ответ №1:

Вы можете использовать $(':input').val(''); и $('textarea').val('');

 $("#reset").click(function(){
  $(':input').val('');
  $('textarea').val('');

});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="mc-field-group">
    <div class="row">
        <div class="col-sm-6 col-md-6">
            <input type="text" placeholder="Type your name here..." 
                   value="" 
                   name="NOME" class="form-control input-box required pull- 
                   right" id="mce-NOME">
        </div>
        <div class="col-sm-6 col-md-6">
            <input type="text" placeholder="Type your email here..." 
                   value="" name="EMAIL" class="form-control input-box 
                   required pull-left" id="mce-EMAIL">
        </div>
    </div>
</div>
<div class="mc-field-group">
    <div class="row">
        <div class="col-sm-12">
            <textarea limit="1000" placeholder="Type your message here..." 
                      style="height: 100px; width: 500px;" value="" 
                      name="MENSAGEM" class="form-control textarea-box required" 
                      id="mce-MENSAGEM">
            </textarea>
        </div>
    </div>
</div>

<input type="button" id="reset" value="Reset">  

Комментарии:

1. Большое спасибо за ваш ответ, это было действительно полезно!

Ответ №2:

Вы можете просто поместить это в свой обработчик успеха, что-то вроде

 $('.mc-field-group input, .mc-field-group textarea').val('')
  

должно сработать.

Если у вас есть поля в форме, вы можете использовать сброс в форме

 $('#formId')[0].reset();
  

Ответ №3:

 $('.mc-field-group').find('input,textarea').val('')