Подтвердить что ты не робот

Jquery newsletter submit - загрузка сообщения

У меня есть форма бюллетеня, который я использую на своем сайте, используя ajax с jquery. Я хочу показать пользователю сообщение ожидания. Каков наилучший вариант?

Вот что я до сих пор:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $('#submit').click(function(e) {
    $.ajax({
      type: "POST",
      url: '/save.php',
      data:  $('#form').serialize(),
      cache: false,
      success: function(result) {
        // my code when success
      }
    });
  });
});

</script>

<div id="newsletter">
  <form id="form">
  <label for="email">Your Email*:</label>
  <input name="email" value="" type="text" id="email" size="30" maxlength="255" />
  <span id="submit">Submit</span>
  </form>
</div>

спасибо

4b9b3361

Ответ 1

Вот что вы можете сделать:

Создайте диалоговое окно div (диалоговое окно сообщения) и покажите, когда пользователь нажимает на submit и скрывает его при завершении ajax. Я бы также рекомендовал использовать плагин проверки jQuery для проверки электронной почты.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $('#submit').click(function(e) {
    // validation
    $.ajax({
      type: "POST",
      url: '/file.php',
      data:  $('#form').serialize(),
      cache: false,
      success: function(result) {
        // do what ever you need
      },
      error: function (response, desc, exception) {
        // alert some message
      },
      beforeSend: function() {
        $('#loader').fadeIn(1000);
      },
      complete: function() {
        $('#loader').fadeOut(1000);
      },
    });
  });
});

</script>
<style type="text/css">
  #loader { display: none; /* and other css youy need like border, position, etc... */ }
</style>

<div id="loader">loading ...</div>

<div id="newsletter">
  <form id="form">
  <label for="email">Your Email*:</label>
  <input name="email" value="" type="text" id="email" size="30" maxlength="255" />
  <span id="submit">Submit</span>
  </form>
</div>

Ответ 2

Вы можете сделать это примерно так.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $('#submit').click(function(e) {

   //Put the loding script here
   $("#preloader").show();

    $.ajax({
      type: "POST",
      url: '/save.php',
      data:  $('#form').serialize(),
      cache: false,
      success: function(result) {
        // my code when success
        //Stop the preloader if the process is done
        $("#preloader").hide();
      }
    });
  });
});



<div id="newsletter">
  <form id="form">
  <label for="email">Your Email*:</label>
  <input name="email" value="" type="text" id="email" size="30" maxlength="255" />
  <span id="submit">Submit</span>
  <img src="preloader.gif" id="preloader" />
  </form>
</div>

Когда пользователь нажимает кнопку отправки, вы показываете свое изображение перед загрузчиком. После завершения процесса скройте его.