我有一个JQuery函数
(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代码可以将我重定向到任何特定网址。
$('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);
});
我知道上面的代码不起作用,我很困惑我怎么用这个?
答案 0 :(得分:4)
您永远不会在代码中调用该函数,因此无论您在函数中放置什么内容都无法正常工作。 Intead of:
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);
});
答案 1 :(得分:3)
window.location.href=window.location.href;
或
location.replace(URL);
但是保留变量你可以接近查询字符串或会话变量