0

フォームが送信されたときに3秒の遅延をプログラムしたいと思います。現在、送信時に標準テキストがフェードアウトし、通知テキストがフェードインしますが、ページを読む前にページがリロードされます。

<script type="text/javascript"> function changeText() { 
$('#free-planner').fadeOut('slow', function() {
       document.getElementById('free-planner').innerHTML = 'Check your email!';   }); {  $('#free-planner').fadeIn('slow', function() {  });    
 }   
} 
</script>
4

1 に答える 1

4

まず、送信イベントを防止し、準備ができたらプログラムで起動します。

$('form').on('submit', function(ev) {
  ev.preventDefault();
  form = $(this);
  fp = $('#free-planner');
  fp.fadeOut('slow', function () {
    fp.text('Check your email!').fadeIn('slow', function() {
      form.submit();
    });
  });
});

このようなことはすべて、フォームが送信された後に行われるはずです。フォームのターゲットである非表示のiframeが必要な場合がありますか?その後、ブラウザの現在のページを更新せずにフォームを送信できます。何かのようなもの:

form = $('form');
$('body').append($('<iframe>').attr({ name:"hiddenifr", id:"hiddenifr" }).css({ display: 'none' }));

form.attr('target', 'hiddenifr');
form.on('submit', function(ev) {
  fp = $('#free-planner')
  fp.fadeOut('slow', function() {
    fp.text('Check your email!').fadeIn('slow');
  });
});
于 2012-06-19T17:34:10.107 に答える