繁体   English   中英

如何在jQuery中使用window.location重新加载同一页面?

[英]How do i reload same page using window.location in jQuery?

我有一个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);
});

我知道上面的代码将无法正常工作,我对此感到困惑?

您永远不会在代码中调用该函数,因此无论您在函数中放入什么内容,该函数都不会起作用。 插入:

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);
});
window.location.href=window.location.href;

要么

 location.replace(URL);

但是保留变量,您可以使用查询字符串或会话变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM