2011-08-01 35 views
0

我有一個jQuery函數如何在jQuery中使用window.location重新加載相同的頁面?

(function ($) { 
jQuery.fn.saveUser = function(destinationUrl) { 
    this.click(function() { 
     var formData = 'option=saveuser&'+$('form#save-user').serialize(); 
     $.ajax({ 
      type: 'POST', 
      url: 'process.php', 
      data: formData, 
      success: function(msg){ 
       if(msg === 'empty') { 
        alert('Required Values Missing'); 
       } else if(msg === 'duplicateEmail'){ 
        alert('Email already exist'); 
       } else { 
        window.location = destinationUrl; 
       } 
      } 
     }); 
    }); 
} 

現在基於一些動作和事件,我把它重定向到不同的頁面,在這種情況下,我需要它重定向到兩個不同的URL。

1) reload the same page preserving all $_GET variables via URI 

2) reload to the specified url. 

下面的jQuery代碼可以將我重定向到任何特定的URL。

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    return 'index.php?users'; 
}); 

但是我沒有得到如何使它重定向到同一頁面例如。

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    return location.reload(true); 
}); 

我知道上面的代碼將無法正常工作,我很困惑我該如何去與此?

回答

3

你永遠不會調用你的代碼的功能,所以它不會工作,無論你把功能。的這一翻譯:

window.location = destinationUrl; 

你應該調用的函數,並讓功能做重定向:

destinationUrl(); 

(你可能要重命名的參數來反映使用情況的變化。)

所以,你的功能應該做的,而不是返回的URL重定向,這樣就可以使用在第二個的reload方法:

$('form#save-user button[name="save-user-close"]').saveUser(function() { 
    window.location = 'index.php?users'; 
}); 

和:

$('form#save-user button[name="save-user-close"]').saveUser(function(e) { 
    location.reload(true); 
}); 
+0

'回報location.reload(真);'不爲我的jQuery函數工作。 –

+0

@Ibrahim Azhar阿瑪爾:是的,我意識到它有點複雜。我編輯了答案。 – Guffa

+0

這很好,我是jQuery的新手,所以我對這個東西的工作原理有點了解:)謝謝 –

3
window.location.href=window.location.href; 

location.replace(URL); 

但保留u能接近查詢字符串或會話變量變量

相關問題