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>
спасибо
Ответы
Ответ 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>
Когда пользователь нажимает кнопку отправки, вы показываете свое изображение перед загрузчиком. После завершения процесса скройте его.