2010-06-21 61 views
4

看這個劇本請

$("#change").click(function() 
{ 
    var val = $("#new_title").val(); 
    if(val == '') 
    { 
    alert("Նշեք խնդրեմ անունը"); 
    return false; 
    } 
    else 
    { 
    $.post 
    (
    "change_title.php", 
    {id: id, lang: lang, val: val} 
    ); 

     window.location.reload(); 
    } 
}); 

其中idlang是全局變量。

in change_title.php我正在上傳表格。

我想在編輯後顯示更改,所以我使用window.location.reload();函數,但它不起作用。如果我刪除window.location.reload();函數,它工作正常。

是什麼問題?

感謝

回答

13

您需要$.post()完成之後運行它,就像這樣:

$.post("change_title.php", 
     {id: id, lang: lang, val: val}, 
     function() {window.location.reload(); }); 

沒有這樣做,因爲回調$.post()(運行完成時),在窗口離開在之前頁面POST完成。如果你不需要做任何事情在其他的功能,你可以縮短它歸結爲:

$.post("change_title.php", 
     {id: id, lang: lang, val: val}, 
     window.location.reload); 
+0

修正:非常感謝;) – Simon 2010-06-21 15:24:55

+0

你是一個拯救生命的人XD – Vasseurth 2012-04-23 02:50:02

1

您需要使用超時上window.location.reload或使用一個回調函數。這個職位沒有足夠的時間發送。

+5

Timeout從來不是一個好主意來代替回調函數。不能保證服務器會在分配給超時的時間段之前做出響應。 – 2011-06-14 21:26:40