2012-07-28 84 views
0

我的setTimeout似乎在登錄,但不是用於提交數據。 :setTimeout不起作用

<script type="text/javascript" src="../scripts/jquery.js"></script> 
<script type="text/javascript"> 

$.ajaxSetup({async:false}); 

function Validate_submit(form) { 
    var Address1_input = form.address1.value; 
    var Address2_input = form.address2.value; 
    var City_input = form.city.value; 
    var State_input = form.state.value; 


    $.post('../scripts/submit_check.php', {address1php: Address1_input, address2php: Address2_input, cityphp: City_input, statephp: State_input}, 
    function(output) { 
      $('#submit_msg').html(output).fadeIn(500); 
      if (output == 'Submitting...') { 
     var timeoutID = window.setTimeout(function() {location.reload();}, 1000); 
      } else { 
       $('#submit_msg').html('something went wrong').fadeIn(500); 
      } 
     } 
     ); 

} 

相同的代碼工作在我的日誌,在彈出的窗口:

<script type="text/javascript" src="../scripts/jquery.js"></script> 
<script type="text/javascript"> 
$.ajaxSetup({async:false}); 

function Validate_login(form) { 
    var Email_input = form.email.value; 
    var Password_input = form.password.value; 
    var Rememberme_input = form.remember_me.checked; 

    $.post('../scripts/login_check.php', { emailphp: Email_input, passwordphp: Password_input, rememberphp: Rememberme_input}, 
     function(output) { 
      $('#login_msg').html(output).fadeIn(500); 
      if (output == 'Logging in...') { 

       var timeoutID = window.setTimeout(function() {location.reload();}, 1000); 
      } 
     } 
     ); 
} 

當我點擊提交表單提交按鈕,它顯示「提交......」一秒鐘,但不是整個秒(如在登錄彈出)。有人能幫我嗎?

+0

您可能想知道ajax的'async:false'已被最新版本的jQuery棄用。 – jfriend00 2012-07-29 02:27:38

回答

2

您可能需要取消實際的<form>的提交。 return falseonsubmit處理程序在您呼叫Validate_submit後。

+0

'e.preventDefault();' – wanovak 2012-07-28 22:56:58

+0

@wanovak:給定函數定義,我會假設這是'onsubmit'屬性,所以'e'不可用。 (重組當然是一個好主意。) – Ryan 2012-07-28 22:58:14