2010-06-21 74 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